我这个程序为什么就是接收不到数据呢?
服务器端:
CString LogStr;
int Error=0;
WSADATA wsaData;
Error=WSAStartup(MAKEWORD(0x02,0x02),&wsaData);
if(Error!=0)
{
Error = WSAGetLastError();
LogStr.Format("WSAStartUp Faild With Error: %d",Error);
}
//Make Version
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 )
{
WSACleanup( );
}
SOCKET ListenSocket = WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,NULL);
if(ListenSocket==INVALID_SOCKET)
{
Error = WSAGetLastError();
LogStr.Format("CreateSocket faild with Error: %d",Error);
}
//绑定到目标地址
sockaddr_in InternetAddr;
InternetAddr.sin_family=AF_INET;
InternetAddr.sin_addr.S_un.S_addr=inet_addr("211.65.61.167");//htonl(INADDR_ANY);
InternetAddr.sin_port=htons(8765);
if(bind(ListenSocket,(PSOCKADDR )&InternetAddr,sizeof(InternetAddr))==SOCKET_ERROR)
{
Error=GetLastError();
LogStr.Format("bind Socket faild with Error: %d",Error);
}
WSABUF buf;
char bfu[100];
buf.buf=bfu;
sockaddr*addr;
DWORD RecvByte;
unsigned long Flag=0;
//SOCKADDR* sockadd;
int socklen=sizeof(SOCKADDR);
if(0==WSARecvFrom(ListenSocket,&buf,1,&RecvByte,&Flag,addr,&socklen,NULL,NULL))MessageBox("yes sever");
else MessageBox("no sever");
客户端:
WSADATA wsaData;
// 创建套节字
int Error=WSAStartup(MAKEWORD(0x02,0x02),&wsaData);
if(Error!=0)
{
Error = WSAGetLastError();
//Vport->m_bar.SetText(" 连接视频服务器出错", 0, 0);
}
//Make Version
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 )
{
WSACleanup( );
//Vport->m_bar.SetText(" 连接视频服务器出错", 0, 0);
}
////////////////////////////////////////////////
SOCKET m_videosocket= ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);//创建SOCKET
if(m_videosocket == INVALID_SOCKET)
{
//Vport->m_bar.SetText(" 连接视频服务器出错", 0, 0);
}
// 假定szAddr是IP地址
sockaddr remote_video;
sockaddr_in remote;
remote.sin_addr.S_un.S_addr = inet_addr("211.65.61.167");
remote.sin_family = AF_INET;
remote.sin_port = htons(8765);
memcpy(&(remote_video),&remote,sizeof(sockaddr));
DWORD sentbyte;
WSABUF buffer;
buffer.buf="Hello";
buffer.len=strlen("Hello");
int remotesize=sizeof(remote_video);
unsigned long Flag=0;
while(1)
{
WSASendTo(m_videosocket,&buffer,1,&sentbyte,Flag,&remote_video,remotesize,NULL,NULL);
}
服务器端:
CString LogStr;
int Error=0;
WSADATA wsaData;
Error=WSAStartup(MAKEWORD(0x02,0x02),&wsaData);
if(Error!=0)
{
Error = WSAGetLastError();
LogStr.Format("WSAStartUp Faild With Error: %d",Error);
}
//Make Version
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 )
{
WSACleanup( );
}
SOCKET ListenSocket = WSASocket(AF_INET,SOCK_DGRAM,0,NULL,0,NULL);
if(ListenSocket==INVALID_SOCKET)
{
Error = WSAGetLastError();
LogStr.Format("CreateSocket faild with Error: %d",Error);
}
//绑定到目标地址
sockaddr_in InternetAddr;
InternetAddr.sin_family=AF_INET;
InternetAddr.sin_addr.S_un.S_addr=inet_addr("211.65.61.167");//htonl(INADDR_ANY);
InternetAddr.sin_port=htons(8765);
if(bind(ListenSocket,(PSOCKADDR )&InternetAddr,sizeof(InternetAddr))==SOCKET_ERROR)
{
Error=GetLastError();
LogStr.Format("bind Socket faild with Error: %d",Error);
}
WSABUF buf;
char bfu[100];
buf.buf=bfu;
sockaddr*addr;
DWORD RecvByte;
unsigned long Flag=0;
//SOCKADDR* sockadd;
int socklen=sizeof(SOCKADDR);
if(0==WSARecvFrom(ListenSocket,&buf,1,&RecvByte,&Flag,addr,&socklen,NULL,NULL))MessageBox("yes sever");
else MessageBox("no sever");
客户端:
WSADATA wsaData;
// 创建套节字
int Error=WSAStartup(MAKEWORD(0x02,0x02),&wsaData);
if(Error!=0)
{
Error = WSAGetLastError();
//Vport->m_bar.SetText(" 连接视频服务器出错", 0, 0);
}
//Make Version
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 )
{
WSACleanup( );
//Vport->m_bar.SetText(" 连接视频服务器出错", 0, 0);
}
////////////////////////////////////////////////
SOCKET m_videosocket= ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);//创建SOCKET
if(m_videosocket == INVALID_SOCKET)
{
//Vport->m_bar.SetText(" 连接视频服务器出错", 0, 0);
}
// 假定szAddr是IP地址
sockaddr remote_video;
sockaddr_in remote;
remote.sin_addr.S_un.S_addr = inet_addr("211.65.61.167");
remote.sin_family = AF_INET;
remote.sin_port = htons(8765);
memcpy(&(remote_video),&remote,sizeof(sockaddr));
DWORD sentbyte;
WSABUF buffer;
buffer.buf="Hello";
buffer.len=strlen("Hello");
int remotesize=sizeof(remote_video);
unsigned long Flag=0;
while(1)
{
WSASendTo(m_videosocket,&buffer,1,&sentbyte,Flag,&remote_video,remotesize,NULL,NULL);
}
解决方案 »
- 非模态对话框
- 100RMB求高手帮助读出被加密的INI文件
- 如何在程序中加入baidu 、google等搜索???
- 跪求《VC++深入详解》电子书!给分
- 为何MFC ClassWizard不能显示程序中的有些类?
- 大家帮忙看看::Static控件:鼠标按下时画红色字符,鼠标释放时画蓝色字符!!!
- 想做一个ocx控件,把word集成到里面去,不知道怎么下手,有没有资料或者例子
- WinHTTP设置HTTP请求超时时间(请大神回答)
- LINK : warning LNK4098: defaultlib "LIBCMTD" ...谁知道什么意思?
- 一个dll菜鸟问题
- |||____WM_QUIT 的拦截问题
- VC++中Profile使用问题
写程序要养成一个好习惯:一定要检查函数的返回值。