专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++ Builder

ReceiveBuf和ReceiveText怎么同时使用而不冲突

发布时间:2011-06-28 14:02:31 文章来源:www.iduyao.cn 采编人员:星星草
ReceiveBuf和ReceiveText如何同时使用而不冲突
        我使用的是TServerSocket   和TClientSocket,思路是,对于简单的信息,现在只使用SendText发送,ReceiveText来接收,
对于复杂的信息(放在结构体中),使用SendBuf发送,用ReceiveText接收,但我不知道如何分开接收,

      望高手赐教!
急!

------解决方案--------------------
服务器端和客户端通信要采用一定的“协议”,即采用一问一答的通信模式,才能保证较安全的传输数据,在约定好了后按照情况使用Send、Receive的相关函数。
------解决方案--------------------
自己做个协议
表示接收的什么数据,然后根据协议去解析
------解决方案--------------------
我以前做的一个远程控制的小软件都使用SendBuf,一般第一部分是控制结构,后面跟扩展,如果有文本从里面抽取出来就可以了
------解决方案--------------------
Delphi(Pascal) code
//这个时候vcl source code 是王道!
function TCustomWinSocket.ReceiveText: string;
begin
  SetLength(Result, ReceiveBuf(Pointer(nil)^, -1));
  SetLength(Result, ReceiveBuf(Pointer(Result)^, Length(Result)));
end;
{第一次取得长度,第二次取得数据}

------解决方案--------------------
一问一答制,发送方和接收方约定好第一个DWORD值(也就是4个字节)为后面缓冲的长度,然后根据这个长度读取相应长度的内容就行了。后面的数据可以根据需要加密。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: