有关socket间信息的发送……帮忙给看看吧! ( 积分: 30 )

  • 主题发起人 主题发起人 sword_911
  • 开始时间 开始时间
这点还是同意楼上的,自定义点报文比转义方便多了
除非是太底层,不允许有报文形式的地方,很少见有用转义处理的东西
转义对大包的并包拆包还会带来一些不小的问题,而报文在这里比较简单的

哎,问题还是已经定义了一个报文了,不想再加报文头了啊
应该有什么简单的方法把socket里面的缓存着的东西直接发掉的
socket的原生处理机制中肯定也要有的,就没人知道么?
 
to Writer,
因为楼主是在用SendText和ReceiveText收发文本数据,对于使用报文好像不直观吧,字符串头上该留几个字符做长度呢?毕竟传的不是二进制流。个人想法
 
回楼上的, 当然是一个INT的长度(即4个节字), 在DELPHI直接用SendBuf和RecvBuf(不知有没记错,我用VC的……)

回楼主的问题:
>>哎,问题还是已经定义了一个报文了,不想再加报文头了啊
>>应该有什么简单的方法把socket里面的缓存着的东西直接发掉的
>>socket的原生处理机制中肯定也要有的,就没人知道么?
报文只是逻辑上的,实际上的数据就是在每段数据前多了4个字节。如果你觉得多加一层报文不好,你索性把数据的长度包含去你原有的报文头,每次发数据前先发报文头,再发数据。 还有你即使把socket的缓冲直接发掉,到了SOCKET另一端发开发的两段数据,同样有可能会变成一段的,因为TCP是流协议。
 
to Writer,
因为楼主是在用SendText和ReceiveText收发文本数据……
“在DELPHI直接用SendBuf和RecvBuf”你这样答在高考可是0分噢 呵呵
ps,我从来不用SendText、ReceiveText这样收发的,还是习惯二进制流:)
 
本贴已结!!
谢谢各位的点拨!!!
为了方便起见,采用了sleep(100)的方法!
 
后退
顶部