socket udp
1、服务端
#include <WinSock2.h> #include<Windows.h> #pragma comment(lib, "ws2_32.lib") int main() { WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData)) return -1; if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion != 2)) return -1; printf("Server access ... \r\n"); SOCKET socket_Server = socket(AF_INET, SOCK_DGRAM, 0); sockaddr_in sockaddr_in_Server; sockaddr_in_Server.sin_family = AF_INET; sockaddr_in_Server.sin_port = htons(1234); sockaddr_in_Server.sin_addr.S_un.S_un_b.s_b1 = 127; sockaddr_in_Server.sin_addr.S_un.S_un_b.s_b2 = 0; sockaddr_in_Server.sin_addr.S_un.S_un_b.s_b3 = 0; sockaddr_in_Server.sin_addr.S_un.S_un_b.s_b4 = 1; if (bind(socket_Server, (sockaddr *)&sockaddr_in_Server, sizeof(sockaddr_in_Server)) == SOCKET_ERROR) return -1; char recvBuf[MAXBYTE] = {0}; char sendBuf[MAXBYTE] = {0}; int sockaddr_in_Len = sizeof(sockaddr_in); while (true) { if (recvfrom(socket_Server, recvBuf, MAXBYTE, 0, (sockaddr *)&sockaddr_in_Server, &sockaddr_in_Len) == SOCKET_ERROR) break; printf("Recv : %s\r\n", recvBuf); scanf_s("%s", sendBuf, MAXBYTE); if (sendto(socket_Server, sendBuf, strlen(sendBuf) + sizeof(char), 0, (sockaddr *)&sockaddr_in_Server, sockaddr_in_Len) == SOCKET_ERROR) break; } closesocket(socket_Server); WSACleanup(); return 0; }
2、客户端
#include <WinSock2.h> #include<Windows.h> #pragma comment(lib, "ws2_32.lib") int main() { WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData)) return -1; if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion != 2)) return -1; printf("Client access ... \r\n"); SOCKET socket_Server = socket(AF_INET, SOCK_DGRAM, 0); sockaddr_in sockaddr_in_Client; sockaddr_in_Client.sin_family = AF_INET; sockaddr_in_Client.sin_port = htons(1234); sockaddr_in_Client.sin_addr.S_un.S_un_b.s_b1 = 127; sockaddr_in_Client.sin_addr.S_un.S_un_b.s_b2 = 0; sockaddr_in_Client.sin_addr.S_un.S_un_b.s_b3 = 0; sockaddr_in_Client.sin_addr.S_un.S_un_b.s_b4 = 1; char recvBuf[MAXBYTE] = {0}; char sendBuf[MAXBYTE] = {0}; int sockaddr_in_Len = sizeof(sockaddr_in); while (true) { scanf_s("%s", sendBuf, MAXBYTE); if (sendto(socket_Server, sendBuf, strlen(sendBuf) + sizeof(char), 0, (sockaddr *)&sockaddr_in_Client, sockaddr_in_Len) == SOCKET_ERROR) break; if (recvfrom(socket_Server, recvBuf, MAXBYTE, 0, (sockaddr *)&sockaddr_in_Client, &sockaddr_in_Len) == SOCKET_ERROR) break; } closesocket(socket_Server); WSACleanup(); return 0; }