的TCP规划问题

G

Guest

Guest
我使用的TCP套接字发送数据的以太网。我得到的数据包节在收到端口。我需要将它们分开的应用程序。假设的TCP不应该像这样工作。任何设置我错过?请帮助我。谢谢。

 
TCP连接为您提供了一种'流的字节'方面,完全按照您描述您找到。您的申请已编码的数据转化为连线, (当然)解码时候了。

最简单的方法就是这样做的大概就是'编码'为ASCII (如使用sprintf )和使用\
n 为单独的邮件。每封邮件将开始了一个独特的一串字符
, 以说明情况的数据
, 这是有关如下。解码它您将获得线从插座(终止\ n )
的 ,然后使用sscanf获得字符串
, 以确定该邮件,并根据信息进行解码
, 其余的数据线。

如果您需要发送二进制数据(例如
, 由于编码的ASCII将太慢/超负荷的通信联系)的原则仍然是相同的,但你将不得不代码例程找出在每封邮件的目的。

当您传送数据的TCP连接,这可能是分散的(所以到达目的地在几个不同的块) ,或结合其它数据(所以抵达更大块比发送) ,虽然是字节流不损坏。您的申请已收集的所有数据块构成的信息
, 而不是抛弃任何额外的不必要的数据到达后
, (因为这是probabl开始下面的消息) 。

所有这一切都非常如何流通信链路的任何作品,
而 不是一个问题
, 独特的TCP 。

如果您准备代码检测丢失邮件,或你愿意相信你的通信媒介(如以太网)不丢失任何数据,那么你可能不是选择使用UDP可以实现数据的'信息'的基础上:如果你把273字节写在一个插座,在接收端将得到273字节1收到的邮件,因此没有流解码的问题。但UDP连接没有'可靠'的功能内置到它的TCP了,和你的申请必须提供他们是否是必要的。

心连心
Barny

 

Welcome to EDABoard.com

Sponsor

Back
Top