Colección de citas famosas - Diccionario de frases chinas - Declaraciones de compilación del programa de socket de programación de Linux

Declaraciones de compilación del programa de socket de programación de Linux

Lado del servidor:

#include

#include

#include

#include

#include

#include

#include

#define MAX_LINE 100

int main()

{

estructura sockaddr_in servidor;

struct sockaddr_in cliente;

int server_fd;

int client_fd;

socklen_t len;

char buf[MAX_LINE]; //Se utiliza para almacenar el contenido de la transferencia en el búfer

char addr_ip[INET_ADDRSTRLEN];//Búfer de dirección del cliente de almacenamiento

int port = 8000; Número de puerto 8000

int n; //Número de bytes para leer y escribir

bzero(&server,sizeof(server));//Borrar la estructura de direcciones

server.sin_family = AF_INET;//Usa ipv4

server.sin_addr.s_addr = INADDR_ANY;//El servidor puede aceptar cualquier dirección

server.sin_port = htons(port) ;/ /Convierte el número de puerto al orden de bytes de la red

server_fd = socket(AF_INET,SOCK_STREAM,0);//Crea un socket y usa el protocolo tcp

bind(server_fd, ( struct sockaddr *)&server,sizeof(server));// Vincular la dirección al socket

listening(server_fd,10);//Empezar a escuchar

printf(" esperando ```\n");

while(1)

{

client_fd = aceptar(server_fd,(struct sockaddr *)&client,&len) ;

n = read(client_fd,buf,MAX_LINE);//Leer mensajes del cliente

inet_ntop(AF_INET,&client.sin_addr,addr_ip,sizeof(addr_ip)) ;

printf("la ip del cliente es: %s, el puerto es: %d\n",addr_ip,ntohs(client.sin_port));

printf("el contenido es: %s\ n",buf);//Imprimir información del cliente

write(client_fd,buf,n);//Reenviarla al cliente

close(client_fd);

}

if(close(client_fd) == -1)

{

perror("no se pudo cerrar"); >

salir(1);

}

devolver 0;

}

Cliente:

p>

#include

#include

#include

#include < unistd.h>

#include

#include

#include

#define MAX_LINE 100

int main(int argc,char * argv[])

{

struct sockaddr_in. servidor ;//Dirección del servidor

char buf[MAX_LINE];

int server_fd;

int puerto = 8000;

char * str = "cadena de prueba";//Cadena predeterminada

if(argc > 1)

{

str = argv[1];//Desde el comando Obtenga la cadena ingresada por el usuario del parámetro

}

bzero(&server,sizeof(server));//Borrar la estructura de direcciones

servidor. sin_family = AF_INET; //Usa ipv4

inet_pton(AF_INET,"192.168.228.129",&server.sin_addr);

server.sin_port = htons(puerto);

server_fd = socket(AF_INET,SOCK_STREAM,0);//Crear socket

connect(server_fd,(struct sockaddr *)&server,sizeof(server));

escribir (server_fd, str,strlen(str) + 1);

//Debido a que es una prueba local, no es necesario considerar el retraso

read(server_fd,buf, MAX_LINE);

printf("recibir del servidor :%s\n",buf);

cerrar(server_fd);

devolver 0;

}

// El código fuente proviene de Internet y es similar a todos los que lo escriben. Todos están escritos en base al protocolo de enlace de tres vías TCP.