代码://服务端
#pragma comment(lib,"WS2_32")
#include <stdio.h>
//??winsock?
#include <winsock2.h>
void main(){
WSADATA wsadata;
struct sockaddr_in sai;
WSAStartup(MAKEWORD(1,1),&wsadata);
SOCKET sock=socket(AF_INET,SOCK_DGRAM,0);
sai.sin_family=AF_INET;
sai.sin_port=htons(2222);
sai.sin_addr.s_addr=htonl(INADDR_ANY);
bind(sock,(struct sockaddr *)&sai,sizeof(sai));
char buffer[100];
int len=sizeof(sai);
while(true){
int count=recvfrom(sock,buffer,100,0,(struct sockaddr *)&sai,&len);
if(strncmp(buffer,"exit",sizeof("exit"))==0)
break;
printf(buffer);
printf("\n");
sendto(sock,buffer,count,0,(struct sockaddr *)&sai,sizeof(sai));
}
closesocket(sock);
}
客户端://client
#pragma comment(lib,"WS2_32")
#include <stdio.h>
//??winsock?
#include <winsock2.h>
void main(){
WSADATA wsadata;
char buffer[100];
struct sockaddr_in sai;
WSAStartup(MAKEWORD(1,1),&wsadata);
SOCKET sock=socket(AF_INET,SOCK_DGRAM,0);
sai.sin_family=AF_INET;
sai.sin_port=htons(2222);
sai.sin_addr.s_addr=inet_addr("127.0.0.1");
while(true)
{
memset(buffer,0,100);
gets(buffer);
if(strncmp(buffer,"exit",sizeof("exit"))==0)
break;
int count=sendto(sock,buffer,strlen("hello")+1,0,(struct sockaddr *)&sai,sizeof(sai));
int len=sizeof(sai);
count=recvfrom(sock,buffer,100,0,(struct sockaddr *)&sai,&len);
printf(buffer);
}
closesocket(sock);
}