我需要创建一个服务器,为每个尝试连接服务器的客户端创建一个新线程。为每个客户端创建的新线程管理客户端,服务器进程侦听来自端口的新连接。
我需要在Unix C中编写代码。这是我需要尽快完成的任务的子任务。我是这个领域的新手,因此对创建服务器知之甚少。
答案 0 :(得分:1)
基本上,你要找的是这样的:
#include <sys/types.h>
#include <sys/socket.h>
#include <pthread.h>
void* handle_connection(void *arg)
{
int client_sock = *(int*)arg;
/* handle the connection using the socket... */
}
int main(void)
{
/* do the necessary setup, i.e. bind() and listen()... */
int client_sock;
pthread_t client_threadid;
while((client_sock = accept(server_sock, addr, addrlen)) != -1)
{
pthread_create(&client_threadid,NULL,handle_connection,&client_sock);
}
}
这是服务器应用程序的一个非常基本的框架,它为每个传入的客户端连接创建不同的线程。如果您不知道bind
,listen
或accept
是什么,请参阅本地手册的第二部分。
答案 1 :(得分:0)
首先看一下https://computing.llnl.gov/tutorials/pthreads/。这是关于C. Enjoy!的线程库的教程。