一个多线程socket的问题
这个是我的answer线程,我希望可以当接收到“shutdown”的时候,可以让主函数中的listen的while(1)终止 并且
closesocket( AcceptSocket);
WSACleanup();
unsigned __stdcall AnswerThread(LPVOID lparam)
{
SOCKET ClientSocket=(SOCKET)(LPVOID)lparam;
int bytesRecv;
char sendbuf[32]="";
char recvbuf[32]="";
while(1)
{
bytesRecv=SOCKET_ERROR;
for(int i=0;i<32;i++)
{ recvbuf[i]='\0'; }
while(bytesRecv==SOCKET_ERROR)
{ //Receiving Data
bytesRecv=recv(ClientSocket,recvbuf,32,0);
}
if(strcmp(recvbuf,"close")==0)
{
strcpy(sendbuf,"Closed Session");
send(ClientSocket,sendbuf,32,0);
printf("Closed Session\n");
_endthreadex( 0 );
return 0;
}
if(strcmp(recvbuf,"shutdown")==0)
{
strcpy(sendbuf,"Closed Session, Server Shutdown");
send(ClientSocket,sendbuf,32,0);
printf("Closed Session\n");
printf("Server Shutdown");
closesocket( ClientSocket);
_endthreadex( 0 );
return 0;
}
send(ClientSocket,recvbuf,strlen(recvbuf),0);
printf("%s\n",recvbuf);
Sleep(0);
}
return 1;
}
多谢各位大哥了。。
closesocket( AcceptSocket);
WSACleanup();
unsigned __stdcall AnswerThread(LPVOID lparam)
{
SOCKET ClientSocket=(SOCKET)(LPVOID)lparam;
int bytesRecv;
char sendbuf[32]="";
char recvbuf[32]="";
while(1)
{
bytesRecv=SOCKET_ERROR;
for(int i=0;i<32;i++)
{ recvbuf[i]='\0'; }
while(bytesRecv==SOCKET_ERROR)
{ //Receiving Data
bytesRecv=recv(ClientSocket,recvbuf,32,0);
}
if(strcmp(recvbuf,"close")==0)
{
strcpy(sendbuf,"Closed Session");
send(ClientSocket,sendbuf,32,0);
printf("Closed Session\n");
_endthreadex( 0 );
return 0;
}
if(strcmp(recvbuf,"shutdown")==0)
{
strcpy(sendbuf,"Closed Session, Server Shutdown");
send(ClientSocket,sendbuf,32,0);
printf("Closed Session\n");
printf("Server Shutdown");
closesocket( ClientSocket);
_endthreadex( 0 );
return 0;
}
send(ClientSocket,recvbuf,strlen(recvbuf),0);
printf("%s\n",recvbuf);
Sleep(0);
}
return 1;
}
多谢各位大哥了。。
...全文
相关推荐
一个多线程的socket服务器源代码
在这个主题中,我们将深入探讨"一个多线程的socket服务器源代码"的相关知识点,包括多线程的概念、Socket的基本原理以及线程同步的重要性。首先,让我们来理解什么是多线程。
java使用socket实现一个多线程web服务器的方法
总的来说,使用Java的Socket API实现一个多线程Web服务器涉及到了网络编程的基础概念,如TCP连接、套接字通信,以及HTTP协议的理解和实现。
多线程socket
**性能优化**:过多的线程可能会导致系统开销增大,因此需要权衡线程数量与系统负载之间的关系。五、实际应用案例一个多线程Socket服务器的典型实现可能包括以下步骤:1.
基于JavaFx的Socket多线程通讯程序实例(含:Server端和Client端)
在本实例中,我们将深入探讨如何使用JavaFX结合Socket编程实现一个多线程的通信程序,包括Server端和Client端。首先,让我们了解Socket编程的基本概念。
Python之Socket通信与线程
想写一个能让两个不同的主机间能进行通讯的软件??想仿造一个类似app store一样的软件??? 如果你打算开发和网络有关的程序, 比如聊天软件,那么你绝对绕不过网络编程这一关,而socket通信就是网络编程的一个重点。 1. Socket的定义 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。(引自百度百科)Emmmm... 想了解理论部分的同学我建议你们到其他文章中查阅相关内容,咱们重点说说实战方面吧 2. 一个简单的Socket通信例子 #


