Red de conocimiento informático - Computadora portátil - Ayuda para la programación básica de redes en lenguaje C, cómo implementar subprocesos múltiples

Ayuda para la programación básica de redes en lenguaje C, cómo implementar subprocesos múltiples

#include lt;sys/stat.hgt;

#include lt;fcntl.hgt;

#include lt;errno.hgt;

#include lt;netdb.hgt;

#include lt;sys/types.hgt;

#include lt;sys/socket.hgt;

#include lt;netinet/in.hgt;

#include lt;arpa/inet.hgt;

#include lt;string.hgt;

#include lt;stdlib.hgt;

#include lt;stdio.hgt;

#include lt;unistd.hgt;

#include lt ;pthread.hgt;

void*thread(void*);

int client[5], i;

main()

{

int serverSocket= socket(AF_INET, SOCK_STREAM, 0);

struct sockaddr_in server_addr

struct sockaddr_in clientAddr; > int addr_len = sizeof(clientAddr);

//Hilo

pthread_t id;

pthread_attr_t attr;

pthread_attr_init(amp; attr);//////////////////////////////////////////////// /// /

pthread_attr_setdetachstate(amp;attr,PTHREAD_CREATE_DETACHED);

//Crear dirección

bzero(amp;server_addr,sizeof(server_addr));

server_addr.sin_family =AF_INET;

server_addr.sin_port = htons(5555);

server_addr.sin_addr.s_addr = htonl(INADDR_ANY);

//Enlace

bind(serverSocket, (struct sockaddr *)amp; server_addr, sizeof(server_addr));

escucha(serverSocket, 5

for(i=0;ilt;5;i)

{

cliente[i] = aceptar(serverSocket, (struct sockaddr *)amp; clientAddr, (socklen_t*)amp; addr_len);

pthread_create(amp;id,amp;attr,thread,(void *) amp; cliente[i]);////////////////////////////////////////// /////////////////////////////////////////////////// /////////////////////////////////////////////////// / id, NULL);

}

close(serverSocket);//////////////////////// //

devuelve 0;

}

hilo vacío*(void* argv)

{

búfer de caracteres [200];

int a=i;

int s_c = *((int*)argv);////////////// // ////

while(1)

{

int n = recv(s_c, buffer, sizeof(buffer), 0); /p >

if(n gt; 0)

printf("Enviado desde el cliente: s\n", buffer

else

regresar;

}

cerrar(s_c);

}