Venho neste artigo explicar como funciona sockets em ANSi C, explicar portabilidade e exemplos reais e diferentes de artigos semelhantes. Enfim, aqui você aprenderá a usar sockets na prática.
Se você quer fazer simples servidores e clientes com sockets para enviar mensagens, fazer portscans simples, pode desfrutar da biblioteca "Simple socket library", vide: http://mysite.verizon.net/astronaut/ssl/
Veja como é fácil fazer um servidor e cliente.
A) O servidor:
#include "sockets.h"
Socket *srvr;
Socket *skt;
srvr= Sopen("srvrname","s"); /* abrindo server e chamando "srvrname" */
skt = Saccept(srvr); /* aceitando cliente */
Sputs("hello client",skt); /* mandando string para o cliente */
Sclose(skt); /* fechando a conexão aceita */
Sclose(srvr); /* fecha o server */
B) O cliente:
#include "sockets.h"
char buf[BUFSIZE];
Socket *client;
client= Sopen("srvrname","c"); /* abrindo cliente "srvrname"*/
Sgets(buf,BUFSIZE,client); /* pega string do server */
printf("server said <%s>\n",buf);/* mostra q o server mandou */
Sclose(client); /* fecha socket */
Claro que tem outras bibliotecas pelo mundo a fora, até no underground, para trabalhar com sockets para facilitar sua vida, isso aí mata o dragão que muitos estavam com medo...
"UNIX é basicamente um simples sistema operacional, mas você tem que ser um gênio para compreender a simplicidade." Dennis Ritchie
[5] Comentário enviado por uberalles em 06/07/2010 - 11:43h
verdadeira aula, velho. parabéns!
muito bom "resumão" do Unix Network programming. Nunca consegui fazer nada decente em sockets e esta tua aula deverá me ajudar muito.
[9] Comentário enviado por brunosolar em 08/07/2010 - 09:48h
Parabens realmente muito bom. So queria fazer um comentario sobra a parte do UDP flood. Sim hoje em dia qualquer firewal simples pode recusar este tipo de pacote.
No entanto dependendo da quantidade de pacotes UDP enviados (leia-se DDOS) você poderá ser "derrubado" pois o firewall irá gastar muito processador para descatar todos os pacotes. A melhor solução (AINDA) para ataques DOS / DDOS é diretamente no ISP onde eles irão setar no roteador o IP do atacante para /dev/null (exemplo). claro que voce corre o risco de perder algum cliente que faça parte da rede redirecionada.