<client>
sendtext('gg');
sendtext('mm');<server>
str:=receivetext;
if(str='gg') then //对gg进行处理
if(str='mm') then //对mm进行处理但实际情况常常是 str=ggmm;
问:若不像增加发送的消息量,该如何解决
sendtext('gg');
sendtext('mm');<server>
str:=receivetext;
if(str='gg') then //对gg进行处理
if(str='mm') then //对mm进行处理但实际情况常常是 str=ggmm;
问:若不像增加发送的消息量,该如何解决
两个应用程序通过T C P 连接交换8 bit 字节构成的字节流。T C P 不在字节流中插入记录标识符。我们将这称为字节流服务(byte stream service )。如果一方的应用程序先传1 0 字节,又传2 0 字节,再传5 0 字节,连接的另一方将无法了解发方每次发送了多少字节。收方可以分4 次接收这8 0 个字节,每次接收2 0 字节。一端将字节流放到T C P 连接上,同样的字节流将出现在T C P 连接的另一端。
很多I n t e r n e t 应用使用一个回车和换行来标记每个应用记录的结束。如HTTP.
另外一种技术是在每个记录之前加上一个记录的字节计数,DNS和Sun RPC采用了这种技术。
程序员只要没有真正理解TCP是数据流,往往会作不够恰当的处理,尽管这样
编写出来的程序有时候也能正常运行.
我估计这就是DELPHI7没有把TClientSocket,TServerSocket放在组件面板上原因.
indy组件提供了Writeln 和Readln 方式,
可以省力不少,减小出错机会.
尽管它也有不足,毕竟方便许多.