本帖最后由 VisualEleven 于 2011-07-19 09:34:49 编辑

解决方案 »

  1.   

    其他的没看出来问题,倒是一下这段代码有点问题:char recvBuf[200];
    char tempBuf[300];
    int retval;
    while(TRUE)
    {
    retval=recvfrom(sock,recvBuf,200,0,(SOCKADDR*)&addrFrom,&len);
    if(SOCKET_ERROR==retval)
    break;
    sprintf(tempBuf,"%s说: %s",inet_ntoa(addrFrom.sin_addr),recvBuf);
    ::PostMessage(hwnd,WM_RECVDATA,0,(LPARAM)tempBuf);请看看PostMessage的工作方式,你会知道哪里有问题的
      

  2.   

    我第一用PoseMessage,还是用的别人的代码,刚学MFC~那怎么改呢?
      

  3.   

    SOCKADDR_IN addrSock;
        addrSock.sin_family=AF_INET;
        addrSock.sin_port=htons(2047);
        addrSock.sin_addr.S_un.S_addr=htonl(INADDR_ANY);    int retval;
        retval=bind(m_socket,(SOCKADDR*)&addrSock,sizeof(SOCKADDR));
    ----------------
    你说的是这里的bind失败?
    你多次调用这个,bind同一个端口(2047)上,肯定会失败的吧
    这里
    addrSock.sin_port = htons(0);这样试试~
      

  4.   

    大哥你终于来了~眼泪哗哗的~
    我自己用的端口不得1024以上的么?
    我就想,在打开一个窗口,同时和N个人即时通讯!
    可不可以调整一下把绑定的放到别的地方,绑定一次,然后,和N个IP地址进行通讯~
      

  5.   

    无法通讯,调试一下,看看是哪里调用的问题,WSAGetLastError()?
      

  6.   

    这个这个
    我什么都没改啊,就改了个0~
    WSAGetLastError()是什么啊,如何用啊~~
      

  7.   

    不能通讯,Debug下看看哪个函数调用失败?sendto,recvfrom?
      

  8.   

    LZ是recvfrom 这udp通讯嘛.查看孙鑫的mfc socket那节录象。 照着打。 我编译通过了。运行也可以聊
      

  9.   

    要不你看看,我在一个类中bind UDP的socket 6000端口,然后,把m_socket传到令一类中应用通讯
    行不行~
    m_socket都是Public类型的,类之间的数据传递你已经教过我了~~~行么?