Jump to content
msmsms

programação com sockets em c

Recommended Posts

pikax

Ainda ninguem te sugeriu o Beej's Guide to Network Programming?

Da uma espreitadela ...

O @apocsantos disse +3vezes e eu disse 1 ou 2


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Share this post


Link to post
Share on other sites
msmsms

- o trabalho que estou a fazer deixa claro que a comunicação entre clientes e servidor devem utilizar ligações TCP (dai eu ter iniciado em TCP)

por esse motivo uma versão UDP não é válida

- não consegui perceber o site http://beej.us/guide/bgnet/

quando entro em links vou dar a páginas com emails

Edited by msmsms

Share this post


Link to post
Share on other sites
HappyHippyHippo

- o trabalho que estou a fazer deixa claro que a comunicação entre clientes e servidor devem utilizar ligações TCP (dai eu ter iniciado em TCP)

por esse motivo uma versão UDP não é válida

existe alguma referência a esse promenor em algum dos teus post anteriores ???


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
msmsms

no trabalho também são dados alguns conselhos que são os seguintes:

fcntl - configurar um socket como não bloqueante

select - esperar ligações ou mensagens de varios sockets em simultanio

FD_ZERO, FD_SET,FD_ISSET - operações de suporte necessarias á utilização do select para gerir varios sockets

Share this post


Link to post
Share on other sites
apocsantos

Boa noite,

@pmg: como disse o Pikax, o Beej's Guide to Network Programming foi sugerido pelo menos umas 3 vezes por mim, mais uma ou duas por ele. Ainda lhe foi sugerido o tuturial de sockets que está na wiki.

Cordiais cumprimentos,

Apocsantos


"A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"

Share this post


Link to post
Share on other sites
msmsms

existe alguma referência a esse promenor em algum dos teus post anteriores ???

existe alguma referência a esse promenor em algum dos teus post anteriores ???

eu agradeço a tua ajuda mas de facto é necessário ser TCP

sei que as ligações UDP se dão de forma diferente já dei o UDP antes

nunca falei em UDP neste tópico

criar em TCP é que é mesmo o objectivo se é mais complicado ou não eu não sei ainda

Share this post


Link to post
Share on other sites
HappyHippyHippo

eu agradeço a tua ajuda mas de facto é necessário ser TCP

sei que as ligações UDP se dão de forma diferente já dei o UDP antes

nunca falei em UDP neste tópico

criar em TCP é que é mesmo o objectivo se é mais complicado ou não eu não sei ainda

pois, mas também não falaste de threads e no entanto se queres uma responsive application bem que os terás de usar.

e que tal de em vez de descartar o código na sua totalidade, dás uma olhada e tentas perceber pelo menos estes conceitos:

- threads

- socket timeout

- registo de cliente

com este conceitos consegues criar o teu servidor com TCP e sem usar select

basta criares uma thread por cada cliente quando recebes uma nova ligação, e teres uma área de gestão de mensagens (sincronização de threads)

e se o professor começar a reclamar que não fizeste como ele diz, dá estes argumentos:

- os métodos apresentados no enunciado são aconselhados e não obrigatórios:

no trabalho também são dados alguns conselhos que são os seguintes:

- o método select é considerado um dos métodos mais lentos de fazer o que pretendes :

http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#select

This being said, in modern times select(), though very portable, is one of the slowest methods for monitoring sockets. One possible alternative is libevent, or something similar, that encapsulates all the system-dependent stuff involved with getting socket notifications.

- (se o código final estiver bem feito) o servidor funciona e só por si, a aplicação de outros métodos revela conhecimentos aplicados dentro dos parâmetros delineados no enunciado


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
msmsms

é dito que posso utilizar ou nao o select

penso que as ferramentas são tantas que eu perco-me por estar num grau inferior ao vosso e não poder acompanhar

eu queria resolver da forma mais simples que pode existir

nem que para isso já existessem os clientes: cliente1, cliente2, cliente3 registados no servidor

ou seja já existerem lugares para os clientes, eu vou dar uma olhada no tal pdf do site que me deixaram

tem de existir uma maneira mais basica de servidor e cliente que faça essas etapas que disse

uma maneira mais bébé.

Edited by msmsms

Share this post


Link to post
Share on other sites
HappyHippyHippo

fork é para criar processos, eu falei de threads.

olha para o exemplo que te dei (acima) e vê como é simples criar threads com o pthread:

- pthread_create

- pthread_join


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
msmsms

fork é para criar processos, eu falei de threads.

olha para o exemplo que te dei (acima) e vê como é simples criar threads com o pthread:

- pthread_create

- pthread_join

nao comentas te esse codigo por isso fica dificil percebe-lo

Share this post


Link to post
Share on other sites
HappyHippyHippo

nao comentas te esse codigo por isso fica dificil percebe-lo

não comentei ??? podem ser minimalistas ... mas está comentado


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.