18,356
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include "winsock2.h"
#include "windows.h"
#pragma comment(lib,"ws2_32.lib")
DWORD WINAPI ReceiveThread_Two(void* pData)
{
WSADATA wsaData;
WSAStartup(0x0202,&wsaData);
struct sockaddr_in ClientAddr;
struct sockaddr_in ServerAddr;
ClientAddr.sin_family = AF_INET;
ClientAddr.sin_addr.s_addr = htonl(INADDR_ANY);
ClientAddr.sin_port = htons(2000);
int iAddrLen = sizeof(ClientAddr);
SOCKET sockHdl = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
int iRet = bind(sockHdl,(struct sockaddr*)&ClientAddr,iAddrLen);
if (iRet != 0)
{
perror("Client Socket Bind Error");
}
while (1)
{
char BufTemp[100] = {0};
memset(BufTemp,0x00,sizeof(BufTemp));
int iRet = recvfrom(sockHdl,BufTemp,sizeof(BufTemp),0,(struct sockaddr*)&ServerAddr,&iAddrLen);
printf("2000:%s\n",BufTemp);
Sleep(500);
}
return 0;
}
int main(int argc, char* argv[])
{
DWORD dwThreadID = 0;
int iAddrLen = 0;
char BufTemp[100] = {0};
WSADATA wsaData;
WSAStartup(0x0202,&wsaData);
struct sockaddr_in ClientAddr_II;
struct sockaddr_in ServerAddr;
ClientAddr_II.sin_family = AF_INET;
ClientAddr_II.sin_addr.s_addr = htonl(INADDR_ANY);
ClientAddr_II.sin_port = htons(4000);
SOCKET sockHdl_II = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
int iRet = bind(sockHdl_II,(struct sockaddr*)&ClientAddr_II,iAddrLen);
CreateThread(NULL,0,ReceiveThread_Two,NULL,0,&dwThreadID);
while (1)
{
memset(BufTemp,0x00,sizeof(BufTemp));
iRet = recvfrom(sockHdl_II,BufTemp,sizeof(BufTemp),0,(struct sockaddr*)&ServerAddr,&iAddrLen);
printf("4000:%s\n",BufTemp);
Sleep(500);
}
return 0;
}
iRet = recvfrom(sockHdl_II,BufTemp,sizeof(BufTemp),MSG_PEEK,(struct sockaddr*)&ServerAddr,&iAddrLen);