BSD Sockets em linguagem C

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.

[ Hits: 119.520 ]

Por: C00L3R_ em 06/07/2010 | Blog: https://github.com/CoolerVoid


Simple socket library



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 */

Download: http://mysite.verizon.net/astronaut/ssl/ssl-7.tar.bz2

Vide sua documentação: http://mysite.verizon.net/astronaut/ssl/sockets.ps

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

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Explanação ao TCP/IP
   3. O que é socket
   4. Funções read(), send() e exemplo cliente HTTP
   5. Funções listen(), bind(), accept() e exemplo de servidor HTTP
   6. Na prática fazendo um FUZZER TCP
   7. Servidor e cliente com fork
   8. Servidor de comandos e scanner de portas
   9. Simple socket library
   10. Explanação ao UDP e exemplo de servidor e cliente
   11. Exemplo UDP Flood
   12. Portabilidade
   13. Conclusão
Outros artigos deste autor

Ponteiros - Saindo de Pesadelos

Usando o NetBSD como desktop

Usando o PF - Packet Filter

Apache + PHP + MySQL + ftpd no OpenBSD

Módulos de Web no Perl

Leitura recomendada

Monitorando o consumo de banda com Bwbar

Controlando UPLOAD com o CBQ

O Modelo de Referência OSI

Tutorial - Aplicação em C para transferência de arquivo usando socket TCP e Thread

Introdução à linguagem C - Parte III

  
Comentários
[1] Comentário enviado por VonNaturAustreVe em 06/07/2010 - 03:24h

Excelente cara vou ler tudo :)

[2] Comentário enviado por removido em 06/07/2010 - 05:29h

Hey C00L3R,
Parabéns, é um ótimo artigo. Minhas dúvidas surgiram após meus testes.
Um abraço.

[3] Comentário enviado por andrezc em 06/07/2010 - 08:12h

Cara, realmente esse é um dos melhores artigos que eu já li por aqui. Parabéns.

[4] Comentário enviado por werneral em 06/07/2010 - 11:18h

Muito bom! Obrigado!

[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.

[6] Comentário enviado por stremer em 07/07/2010 - 15:28h

para quem interessar, ha algum tempo atras escrevi um script mostrando como criar um robo http e enviei ao VOL.

http://www.vivaolinux.com.br/script/Robo-HTTP-usando-socket-e-codigo-multiplataforma

Interessante para quem esta aprendendo sockets...

OTIMO ARTIGO

[7] Comentário enviado por andrezc em 07/07/2010 - 15:43h

Opa stremer, eu cheguei a ver este seu script, realmente fabuloso.

Um abraço.

[8] Comentário enviado por fernandopinheiro em 07/07/2010 - 20:23h

Parabens, muito bom!!

[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.

No mais excelente trabalho.

[10] Comentário enviado por shazaum em 24/09/2010 - 11:44h

opa, no fuzzer faltou uma lib...

#include <netinet/in.h>

[11] Comentário enviado por thomasawrd em 18/07/2014 - 12:41h

parabéns cara excelente artigo,me ajudou muito.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts