DWORD WINAPI ThreadWarning(LPVOID pM)
{
printf("子线程的线程ID号为:%d\n子线程输出Hello 3\n", GetCurrentThreadId());
//初始化WSA
WORD sockVersion = MAKEWORD(2,2);
WSADATA wsaData;
if(WSAStartup(sockVersion, &wsaData)!=0)
{
return 0;
}
//while(1)
//{
//创建套接字
SOCKET warlisten = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
//unsigned long ul=1;
//int ret1=ioctlsocket(slisten, FIONBIO, (unsigned long *)&ul);
if(warlisten == INVALID_SOCKET)
{
printf("socket error !");
return 0;
}
//绑定IP和端口
sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(8882);//端口8880 ////////////////////////////////////
sin.sin_addr.S_un.S_addr = INADDR_ANY;
if(bind(warlisten, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
{
printf("bind error !");
}
//开始监听
if(listen(warlisten, 5) == SOCKET_ERROR)
{
printf("listen error !");
return 0;
}
//循环接收数据
SOCKET warClient;
sockaddr_in remoteAddr;
int nAddrlen = sizeof(remoteAddr);
printf("warnig等待连接...\n");
char sendData[1];
do
{
warClient = accept(warlisten, (SOCKADDR *)&remoteAddr, &nAddrlen);
char a=warning;
sendData[0]=a;
//if(a!=0)
send(warClient, sendData, 1, 0);
printf("warnig发送结束...\n");
_sleep(1000);
warClient = INVALID_SOCKET;
warning=0;
}
while(warClient == INVALID_SOCKET);
closesocket(warlisten);
//}
WSACleanup();
return 0;
}