根据网上的资源修改的:
#include <stdio.h> #include <string.h> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") int Server(void); int main(int argc, char *argv[]) { return Server(); } int Server(void) { char buffer[1024] = ""; WSADATA wsaData; SOCKET socket1; struct sockaddr_in local; struct sockaddr_in from; int fromlen = sizeof (struct sockaddr_in); if (WSAStartup(MAKEWORD(2,2), &wsaData) != NO_ERROR) { printf("Error at WSAStartup().\n"); return 255; } local.sin_family = AF_INET; local.sin_port = htons(8001);//监听端口 //local.sin_addr.S_un.S_addr = INADDR_ANY;//本机 local.sin_addr.S_un.S_addr = inet_addr("192.168.7.104");//本机 socket1 = socket(AF_INET, SOCK_DGRAM, 0); bind(socket1, (struct sockaddr *)&local, sizeof (struct sockaddr_in)); while (1) { printf("Waiting for message from others ...\n"); memset(buffer, 0, sizeof (buffer)); if (recvfrom(socket1, buffer, sizeof (buffer), 0, (struct sockaddr *)&from, &fromlen) != SOCKET_ERROR) { printf("Received from Client(%s:%i): %s\n", inet_ntoa(from.sin_addr), ntohs(from.sin_port), buffer); //给client发信息 sendto(socket1, buffer, strlen(buffer), 0, (struct sockaddr *)&from, fromlen); } Sleep(500); } closesocket(socket1); return 0; }