首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

udp网络编程解决方法

2013-04-26 
udp网络编程本帖最后由 yuzhoufengjiu 于 2013-04-21 10:51:07 编辑#include Winsock2.h#include stdio

udp网络编程
本帖最后由 yuzhoufengjiu 于 2013-04-21 10:51:07 编辑
#include <Winsock2.h>
#include <stdio.h>

void main()
{
        WORD wVersionRequested;
        WSADATA wsaData;
        int err;
        
        wVersionRequested = MAKEWORD( 1, 1 );
        
        err = WSAStartup( wVersionRequested, &wsaData );
        if ( err != 0 ) {
                return;
        }
        

        if ( LOBYTE( wsaData.wVersion ) != 1 ||
        HIBYTE( wsaData.wVersion ) != 1 ) {
                WSACleanup( );
                return; 
        }

        SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);
        SOCKADDR_IN addrSrv;
        addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
        addrSrv.sin_family=AF_INET;
        addrSrv.sin_port=htons(6000);

        bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

        SOCKADDR_IN addrClient;
        int len=sizeof(SOCKADDR);
        char recvBuf[100];

        recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);
        printf("%s\n",recvBuf);
        closesocket(sockSrv);
        WSACleanup();
}
显示结果:
是一段乱码,然后就结束了,按理说,应该是等待接收数据状态的...
我在别人的电脑上测试的时候没问题,是处于等待接收数据状态,可是在我电脑上却不是的....是我的电脑设置问题?望解答...
[解决办法]
这有很多socket例子,调试好的,找一个试试就行,不用总自己写:
http://download.csdn.net/detail/geoff08zhang/4571358
[解决办法]
是一段乱码,然后就结束了,按理说,应该是等待接收数据状态的...
用memset或ZeroMemory初始化一下的。。

在while(1)
{

}中才会继续!
[解决办法]
改变一下端口号试试。
有显示内容代表已经成功接收数据了。
[解决办法]
wVersionRequested = MAKEWORD( 1, 1 );

我一直用的是2.2啊。楼主用1.1 是不是和PC的SOCKET版本有关?

热点排行