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

askno

Criar novo protocolo

3 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora