服务端代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<winsock.h>
#pragma comment(lib,"ws2_32.lib")
#define MSGLEN 256
void main()
{
char* receviceStr[MSGLEN] = { 0 };
int length = 0;
SOCKET sock_send;
SOCKADDR_IN server;
SOCKADDR_IN client;
WORD wversion = MAKEWORD(2, 2);
WSADATA wsadata;
int error = WSAStartup(wversion, &wsadata);
if (error != 0)
{
printf("ERROE!");
return;
}
if (LOBYTE(wsadata.wVersion) != 2 || HIBYTE(wsadata.wVersion) != 2)
{
printf("Version error!");
return;
}
sock_send = socket(AF_INET, SOCK_DGRAM, 0);
server.sin_family = AF_INET;
server.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
server.sin_port = htons(8898);
bind(sock_send, &server, sizeof(SOCKADDR));
length = sizeof(SOCKADDR);
while (1)
{
recvfrom(sock_send, receviceStr, MSGLEN, 0, &client, &length);
printf("接受到:%s\n", receviceStr);
memset(receviceStr, 0, MSGLEN);
}
closesocket(sock_send);
WSACleanup();
system("pause");
}
客户端代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<winsock.h>
#pragma comment(lib,"ws2_32.lib")
#define MSGLEN 256
void main()
{
SOCKET socket_client;
SOCKADDR_IN server_addr;
WORD wversion = MAKEWORD(2, 2);
WSADATA wsadata;
int error = WSAStartup(wversion, &wsadata);
if (error != 0)
{
printf("ERROE!");
return;
}
if (LOBYTE(wsadata.wVersion) != 2 || HIBYTE(wsadata.wVersion) != 2)
{
printf("Version error!");
return;
}
socket_client = socket(AF_INET, SOCK_DGRAM, 0);
server_addr.sin_family = AF_INET;
server_addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
server_addr.sin_port = htons(8898);
while (1)
{
char* str[MSGLEN] = { 0 };
printf("请输入发送的消息:\n");
scanf("%s", str);
sendto(socket_client, str, strlen(str) + 1, 0,&server_addr, sizeof(SOCKADDR));
memset(str, 0, MSGLEN);
}
closesocket(socket_client);
WSACleanup();
system("pause");
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/1c682660e6bd70e7f5f7dfc1df51762e.png)