69,382
社区成员
发帖
与我相关
我的任务
分享
void Recv(TCHAR Recv[200], int port)
{
...
addrClient.sin_addr.s_addr = INADDR_ANY;
...
};//试试
#include<windows.h>
#include<iostream.h>
class UDPNet
{
private:
WORD wVersionRequested;
WSADATA wsaData;
int err;
//int Port;
SOCKADDR_IN addSrv;
SOCKADDR_IN addrClient;
SOCKET sockSrv;
int len;
public:
void Open()
{
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
MessageBox(NULL,"网络协议加载失败","",0);
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
MessageBox(NULL,"网络协议加载失败","",0);
}
sockSrv=socket(AF_INET,SOCK_DGRAM,0);
len=sizeof(SOCKADDR);
bind(sockSrv,(SOCKADDR*)&addSrv,sizeof(SOCKADDR));
};
void Send(TCHAR Buffer[200], int port)
{
long laddr =::inet_addr("192.168.1.199");
addrClient.sin_addr.s_addr=laddr;
addrClient.sin_family=AF_INET;
addrClient.sin_port=htons(port);
sendto(sockSrv,Buffer,strlen(Buffer)+1,0,(SOCKADDR*)&addrClient,
sizeof(SOCKADDR));
};
void Recv(TCHAR Recv[200], int port)
{
//long laddr =::inet_addr("192.168.1.199");
long laddr =::inet_addr("192.168.1.199");
addrClient.sin_addr.s_addr=laddr;
addrClient.sin_family=AF_INET;
addrClient.sin_port=htons(port);
recvfrom(sockSrv,Recv,100,0,(SOCKADDR*)&addrClient,&len);
};
void Close();
};
void main()
{
UDPNet udpnet;
// udpnet.SetPort(5001);
udpnet.Open();
while(1)
{
udpnet.Send("中国人民",6000);
TCHAR RecvData[200];
udpnet.Recv(RecvData,6000);
cout<<RecvData<<endl;
}
}能帮我看看吗,我怎么收不到数据呀
int sendto(
SOCKET s,
const char FAR *buf,
int len,
int flags,
const struct sockaddr FAR *to,//你要发送的地址上包含端口的参数,接收也差不多
int tolen
);