bom galera hj eu resolvi ligar o back track para brincar um pouco com ele entao vou fazer esse tutorial de socket em linux porem eu nao vou abordar todo o assunto ja q e o mesmo de socket em windows so vou mostrar a diferença entre eles, para começar agente usa no windows a biblioteca winsock2.h no linux agente vai usar sys/socket.h
no meu exemplo eu vou criar um servidor basico entao vamos ter q criar 3 variaveis do tipo int, um string, e duas estrutura do tipo sockaddr_int, essa estrutura esta em outra biblioteca q e netdb.h
no windows agente tem q iniciar o serviço wsa ja no linux nao e necessario tambem nao e necessario linkar com o lib wsock32, vamos criar o socket
agora agente atribui o endereço, porta e familia para a estrutura
agora usamos a funçao bind, listen e accept para aceitar a conexao
para terminar usamos a funçao recv para receber as informaçao depois so agente conectar pelo telnet (uma pequena observaçao no telnet do windows ele manda caracacter por caracter ja no linux ele envia so quando aperta enter), tambem usamos close para fechar a conexao
by hacker fts315
- Código:
#include <sys/socket.h>
int main(void)
{
}
no meu exemplo eu vou criar um servidor basico entao vamos ter q criar 3 variaveis do tipo int, um string, e duas estrutura do tipo sockaddr_int, essa estrutura esta em outra biblioteca q e netdb.h
- Código:
#include <sys/socket.h>
#include <netdb.h>
int main(void)
{
int sock1, sock2, tam;
char fts[1000];
struct sockaddr_in local, remoto;
}
no windows agente tem q iniciar o serviço wsa ja no linux nao e necessario tambem nao e necessario linkar com o lib wsock32, vamos criar o socket
- Código:
#include <sys/socket.h>
#include <netdb.h>
int main(void)
{
int sock1, sock2, tam;
char fts[1000];
struct sockaddr_in local, remoto;
sock1 = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
}
agora agente atribui o endereço, porta e familia para a estrutura
- Código:
#include <sys/socket.h>
#include <netdb.h>
int main(void)
{
int sock1, sock2, tam;
char fts[1000];
struct sockaddr_in local, remoto;
sock1 = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
local.sin_family = AF_INET;
local.sin_addr.s_addr = INADDR_ANY;
local.sin_port = htons(315);
}
agora usamos a funçao bind, listen e accept para aceitar a conexao
- Código:
#include <sys/socket.h>
#include <netdb.h>
int main(void)
{
int sock1, sock2, tam;
char fts[1000];
struct sockaddr_in local, remoto;
sock1 = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
local.sin_family = AF_INET;
local.sin_addr.s_addr = INADDR_ANY;
local.sin_port = htons(315);
bind(sock1,(struct sockaddr *)&local,sizeof(local));
listen(sock1,1);
sock2 = accept(sock1,(struct sockaddr *)&remoto,&tam);
}
para terminar usamos a funçao recv para receber as informaçao depois so agente conectar pelo telnet (uma pequena observaçao no telnet do windows ele manda caracacter por caracter ja no linux ele envia so quando aperta enter), tambem usamos close para fechar a conexao
- Código:
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netdb.h>
int main(void)
{
int sock1, sock2, tam;
char fts[1000];
struct sockaddr_in local, remoto;
sock1 = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
local.sin_family = AF_INET;
local.sin_addr.s_addr = INADDR_ANY;
local.sin_port = htons(315);
bind(sock1,(struct sockaddr *)&local,sizeof(local));
listen(sock1,1);
sock2 = accept(sock1,(struct sockaddr *)&remoto,&tam);
while(1)
{
recv(sock2,fts,strlen(fts),0);
printf("%s",fts);
}
close(sock1);
}
by hacker fts315