怎么在客户程序不知道服务器发送字符串长度的情况下,确定接收缓冲的大小
比如下面几句话
char str_received[10];
Client.ReceiveFrom(str_received,9,szIP,uPort,0);
这里str_received的长度怎么确定才好?

解决方案 »

  1.   

    你的意思我觉得不清楚。我个人的理解是:server发送的数据长度可能变化,因此client端要设置接收数据缓冲区长度。要是这样,我建议:server端的数据长度固定下来(可以加填充字节);或者你自己做一个很小的协议:协议中要标明你的数据长度,也就是说:server先给client一个通知数据,client接收以后解析你自己的协议,知道数据buffer有多大了,不就ok了吗。
      

  2.   

    那要看你是 UDP 还是 TCP 了如果是TCP 就无所谓判断是哪个信号,只要发送方发送了全部数据后,在发送一个结束标志,接受方接受到结束标志就结束接受(串行),很简单的如果是UDP,那你就需要为每个数据报中加入标识位 例如第一个包该位为1 第二个包该位为 2
    ....
      

  3.   

    能不能简单的介绍一下udp和tcp的区别?
    发送结束标志应该怎么做,也是用send吗?接受方怎么结束接受呢,总不能把socket给关掉吧!