18,363
社区成员




#include "stdafx.h "
#include "winsock2.h "
#define MAX_BUF 1024
UINT HandleThread(LPVOID param)
{
SOCKET *s=(SOCKET *)param;
char recvBuf[MAX_BUF];
UINT timeout=5000;
int recvlen;
setsockopt(*s,SOL_SOCKET,SO_RCVTIMEO,(char *)&timeout,4);
while(1)
{
recvlen=recv(*s,recvBuf,MAX_BUF,0);
if(recvlen==-1&&WSAGetLastError()==WSAETIMEDOUT)
{
send(*s, "alert message ",13,0);//发送异常消息
}
}
}
int main(int argc, char* argv[])
{
SOCKET s;
WSADATA wsadata;
WSAStartup(MAKEWORD(2,2),&wsadata);
s=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
sockaddr_in service;
service.sin_family = AF_INET;
service.sin_addr.s_addr = inet_addr( "127.0.0.1 ");
service.sin_port = htons(8000);
bind(s,(sockaddr *)&service,sizeof(sockaddr_in));
listen(s,8);
while(1)
{
SOCKET *ts=new SOCKET;
*ts=accept(s,NULL,NULL);
CreateThread(0,0,(LPTHREAD_START_ROUTINE)HandleThread,ts,0,0);
}
WSACleanup();
return 0;
}