Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
askno

Criar novo protocolo

Recommended Posts

askno

Boas então é o seguinte eu queria fazer um melhoramento do protocolo UDP, oriente a conexao, fazer controlo de gestao de erros etc.. Mas agora tão-me a surgir algumas duvidas do tipo

É susposto usar sockets para isso?

Crio uma socket datagram e depois faço umas funções extra do tipo connect e assim?

É que eu repensei o proprio protocolo do tipo adicionei informações ao protocolo e ficou assim

udp.png

Mas tipo se criar uma datagram socket corre ja sobre udp certo?

Tou um bocado confuso e os meus conhecimentos em termos de sockets é mais em java (jpcap e as classes Socket e DatagramSocket da sun)

Se alguem me puder dar umas luzes agradecia! Abraços

Share this post


Link to post
Share on other sites
TaraDiNHu

Vai ai uma confusão grandita....

1º Sockets UDP, não são conectados, pelo o que um "connect()" na sua forma clássica não existe.

O que acontece é que crias um socket válido, com um sockaddr válido, e envias dados...

O connect existe em TCP porque existe a three-way handshake, que por sua vez, cria uma sessão entre dois pontos de ligação...

Agora, repara, podes criar um protocolo, mas para isso, em windows por exemplo, tens de criar uma NDIS-driver para servir de Service Provider ao teu protocolo....

...E, para comunicar com o teu protocolo, o pc a que enviares dados, tem de ter a mesma biblioteca, para entender os pacotes.

  Se pretendes criar um protocolo a nivel de aprendizagem, estuda os existentes. O IRC, o HTTP, o FTP... tudo protocolos de nível superior, eu sei, mas aprendes coisas úteis.

  Se implementares um desses de ordem superior como driver, adquires conhecimentos para posteriormente implementares um protocolo de baixo-nível.

Para criares pacotes udp, isto é, preencheres os campos UDP, tens de colocar a opção IPPROTO_UDP quando crias o socket....

Boa sorte, e grandes codes :confused:

Share this post


Link to post
Share on other sites
Metaluim

na teoria, podes criar um protocolo teu. Precisas de especificá-lo ao pormenor e depois talvez fazer umas alterações no WinSock/Berkeley Sockets ou criar a tua API.

As alterações que terias de fazer na API de sockets, seria incluir um novo tipo de sockets (o teu) e especificá-lo, depois terias que alterar todas as funções que usem sockets directamente (connect, send, receive, listen, etc...).

Está aí um 31 jeitoso, mas se queres enveredar por este cainho não desistas :confused:

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
Sign in to follow this  

×

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.