18,356
社区成员
发帖
与我相关
我的任务
分享
UINT16 i;
WORD socketVersion = MAKEWORD(2,2);
WSADATA wsaData;
SOCKET desSocket_0;
SOCKET desSocket_1;
struct sockaddr_in serverAddr[2];
int iAddrlen = sizeof(sockaddr_in);
char szbuffer[10] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
int ret;
if (WSAStartup(socketVersion,&wsaData) != 0)
{
printf("Winsock init faied!\r\n");
WSACleanup();
return;
}
/* 服务器监听的端口和地址 */
for(i = 0;i < 2;i ++)
{
memset(&serverAddr[i], 0, sizeof(serverAddr));
serverAddr[i].sin_family = AF_INET;
}
serverAddr[0].sin_port = htons(6000);
serverAddr[0].sin_addr.S_un.S_un_b.s_b1 = 192;
serverAddr[0].sin_addr.S_un.S_un_b.s_b2 = 168;
serverAddr[0].sin_addr.S_un.S_un_b.s_b3 = 1;
serverAddr[0].sin_addr.S_un.S_un_b.s_b4 = 120;
printf("Now connecting the server...\r\n");
desSocket_0 = socket(AF_INET, SOCK_DGRAM, 0);
if(desSocket_0 == INVALID_SOCKET)
{
printf("Socket0建立失败!\r\n");
printf("Error mseeage:%d\n",WSAGetLastError());
}
serverAddr[1].sin_port = htons(5000);
serverAddr[1].sin_addr.S_un.S_un_b.s_b1 = 192;
serverAddr[1].sin_addr.S_un.S_un_b.s_b2 = 168;
serverAddr[1].sin_addr.S_un.S_un_b.s_b3 = 1;
serverAddr[1].sin_addr.S_un.S_un_b.s_b4 = 130;
printf("Now connecting the server...\r\n");
desSocket_1 = socket(AF_INET, SOCK_DGRAM, 0);
if(desSocket_1 == INVALID_SOCKET)
{
printf("Socket1建立失败!\r\n");
printf("Error mseeage:%d\n",WSAGetLastError());
}
while(true)
{
ret = sendto(desSocket_0, szbuffer, sizeof(szbuffer), 0, (struct sockaddr*)&serverAddr[0], iAddrlen);
if(ret != SOCKET_ERROR)
{
Sleep(1000);
ret = recvfrom(desSocket_0, szbuffer, sizeof(szbuffer), 0, (struct sockaddr*)&serverAddr[0], &iAddrlen);
if(ret != SOCKET_ERROR)
{
printf("recive from server:%d\r\n", 0);
}
else
printf("Socket0ReciveError:%d\n",WSAGetLastError());
}
else
printf("Socket0SendError:%d\n",WSAGetLastError());
Sleep(1000);
ret = sendto(desSocket_1, szbuffer, sizeof(szbuffer), 0, (struct sockaddr*)&serverAddr[1], iAddrlen);
if(ret != SOCKET_ERROR)
{
Sleep(1000);
ret = recvfrom(desSocket_1, szbuffer, sizeof(szbuffer), 0, (struct sockaddr*)&serverAddr[1], &iAddrlen);
if(ret != SOCKET_ERROR)
{
printf("recive from server:%d\r\n", 1);
}
else
printf("Socket1ReciveError:%d\n",WSAGetLastError());
}
else
printf("Socket1SendError:%d\n",WSAGetLastError());
Sleep(1000);
}
closesocket(desSocket_0);
closesocket(desSocket_1);
printf("通讯失败!\r\n");
return;
/*
Sleep(1000);
ret = sendto(desSocket_1, szbuffer, sizeof(szbuffer), 0, (struct sockaddr*)&serverAddr[1], iAddrlen);
if(ret != SOCKET_ERROR)
{
Sleep(1000);
ret = recvfrom(desSocket_1, szbuffer, sizeof(szbuffer), 0, (struct sockaddr*)&serverAddr[1], &iAddrlen);
if(ret != SOCKET_ERROR)
{
printf("recive from server:%d\r\n", 1);
}
else
printf("Socket1ReciveError:%d\n",WSAGetLastError());
}
else
printf("Socket1SendError:%d\n",WSAGetLastError());
*/
注释掉上述代码后的结果如下: