askno Posted April 18, 2009 at 05:54 PM Report #257535 Posted April 18, 2009 at 05:54 PM 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 http://img509.imageshack.us/img509/7973/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
TaraDiNHu Posted July 10, 2009 at 09:02 AM Report #278490 Posted July 10, 2009 at 09:02 AM 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 😕
Metaluim Posted July 10, 2009 at 08:55 PM Report #278690 Posted July 10, 2009 at 08:55 PM 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 😕
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now