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);
}