18,356
社区成员
发帖
与我相关
我的任务
分享
//////加入ws2_32.lib LINK
//////////服务端
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
SOCKET m_socket;
WSADATA wsaData;
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
return ;
if (LOBYTE(wsaData.wVersion)!=2 || HIBYTE(wsaData.wVersion) != 2)
{
WSACleanup();
return ;
}
m_socket=socket(AF_INET,SOCK_DGRAM,0);
if(INVALID_SOCKET==m_socket)
return ;
SOCKADDR_IN addrSock;
addrSock.sin_family=AF_INET;
addrSock.sin_port=htons(6666);
addrSock.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
int retval;
retval=bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR));
if(SOCKET_ERROR==retval)
{
closesocket(m_socket);
return ;
}
SOCKADDR_IN addrFrom;
int len=sizeof(SOCKADDR);
char recvBuf[200];
char tempBuf[300];
while(TRUE)
{
retval=recvfrom(m_socket,recvBuf,200,0,(SOCKADDR*)&addrFrom,&len);
if(SOCKET_ERROR==retval)
break;
sprintf(tempBuf,"\n%s: %s",inet_ntoa(addrFrom.sin_addr),recvBuf);
printf(tempBuf);
}
closesocket(m_socket);
system("pause");
}
//////////////////客户端
#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#define HOSTIP "192.168.1.107"
void main(void)
{
SOCKET m_socket;
WSADATA wsaData;
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
return ;
if (LOBYTE(wsaData.wVersion)!=2 || HIBYTE(wsaData.wVersion) != 2)
{
WSACleanup();
return ;
}
m_socket=socket(AF_INET,SOCK_DGRAM,0);
if(INVALID_SOCKET==m_socket)
return ;
SOCKADDR_IN addrTo;
addrTo.sin_family=AF_INET;
addrTo.sin_port=htons(6666);
addrTo.sin_addr.S_un.S_addr=inet_addr(HOSTIP);
int retval;
char tempBuf[200];
while(TRUE)
{
printf("\n请输入发送数据:");
gets(tempBuf);
retval=sendto(m_socket,tempBuf,strlen(tempBuf)+1,0,(SOCKADDR*)&addrTo,sizeof(SOCKADDR));
if(SOCKET_ERROR==retval)
break;
}
closesocket(m_socket);
system("pause");
}