【发布时间】:2019-02-12 03:06:07
【问题描述】:
我正在使用这个函数来接受一个新的客户端并将它传递给一个线程
struct sockaddr_in client;
while(1) {
len = sizeof(client);
fd = accept(sock, (struct sockaddr*)&client, &len);
if(fd>0) {
CreateThread(NULL, 0, process_thread, (LPVOID)fd, 0, &thread);
// pthread_create( &thread , NULL , process_thread , (int)fd);
}
}
并像处理它
DWORD WINAPI process_thread(LPVOID lpParam) {
//void process_thread(int sock) {
SOCKET fd = (SOCKET)lpParam;
//int fd = sock;
....
}
我也可以使用client 结构(sockaddr_in)创建一个新线程并在处理函数中选择 fd,例如
CreateThread(NULL, 0, process_thread, (SOCKET)client, 0, &thread);
以及如何?如果是这样,创建线程后如何接受?这可能吗?
谢谢
【问题讨论】:
-
client不是套接字,所以我不知道“client套接字”是什么意思。 -
我已将问题编辑为
struct sockaddr_in,抱歉
标签: c multithreading sockets