*dest = "127.0.0.1", //服务器IP地址 *sendData = "Hello!";//发送数据 char recvBuf[BUF_SIZE];//接收缓冲区 int result, addrLen = sizeof(srvAddr); //接收命令行参数 if (argc == 2) { dest = argv[1]; } //初始化套接字 WORD socketVersion = MAKEWORD(2, 2); if (WSAStartup(socketVersion, &wsaData) != 0) { printf("初始化失败!"); return 0; } //创建socket clntSock = socket(AF_INET, SOCK_DGRAM, 0); if (clntSock == INVALID_SOCKET) { printf("socket error!"); return 0; } //设置服务器地址 srvAddr.sin_family = AF_INET; srvAddr.sin_addr.S_un.S_addr = inet_addr(dest); srvAddr.sin_port = htons(DEF_PORT); if (srvAddr.sin_addr.S_un.S_addr == INADDR_NONE) { printf("Invalid Address!\r\n"); return 0; } while (1) { sendto(clntSock, sendData, strlen(sendData), 0, (sockaddr*)&srvAddr, addrLen); result = recvfrom(clntSock, recvBuf, BUF_SIZE, 0, (sockaddr*)&fromAddr, &addrLen); if (result > 0) { recvBuf[result] = 0; printf("[Simplatform Client] recv: \"%s\", from %s\r\n", recvBuf, inet_ntoa(fromAddr.sin_addr)); } Sleep(2000); } closesocket(clntSock); WSACleanup(); return 0; }
|