请问UDP 简单C/S通信的思路是什么?
我写过TCP C/S通信,可以实现,可把协议换成UDP OnReceive()函数根本没反映,那UDP是怎么实现的呢,我知道UDP不用针听。

解决方案 »

  1.   

    UDP包是发送端发出以后就不管了,通讯的主机见并没有建立可靠的连接,就象发信件一样,发了就不管了。接收端必须明确指定要接收吗的数据包,recvfrom().而TCP是事先建立了可靠的连接,就象建立了一个通信管道一样,所以直接recv()就可以了,所以你换了肯定就没反映了
      

  2.   

    "接收端必须明确指定要接收吗的数据包"
    指定要接收的包,是用RECVFROM这个函数就行吗?怎么才能指定“要接收的包”呢?
      

  3.   

    你在OnReceive函数里接收一个结构,结构的一个域为命令域,你可以自己定义一些命令
    eg:
    #define COMMAND_TALK_CLIENT 1
    #define COMMAND_TALK_SERVER 2
    struct _DATA
    {
        UINT command;
        ...
    }data;
    ...
    OnReceive(..)
    {
        if(sizeof(data)==Receive(&data,sizeof(data))
        {
             switch(data.commmand)
             case COMMAND_TALK_CLIENT:
              .....
             //不用再写了吧
        }
    }