0

可能重复:
TCP 客户端问题

我在使用 c# TCP 客户端和服务器应用程序时遇到了很大的麻烦。一切正常...但是在某些情况下,当 TCP 服务器同时向 TCP 客户端发送响应时,客户端可以认为服务器发送的两条消息实际上都是一条消息。我不知道为什么会发生这种情况......如果有人知道请帮助我。我的 TCP 客户端和服务器是用 c# 编写的。

4

2 回答 2

0

这是 TCP 的正常行为。它向您保证顺序(如果服务器发送 A,然后 B,客户端将永远不会收到 B,然后 A),但它对您的“消息”一无所知。

要在客户端将数据分解为消息,您需要一些基于 TCP 的应用程序协议。例如,HTTP 使用 CRLFCRLF 来确定 HTTP 消息的结束。
您可以使用现有的或自己制作,这取决于您的需要。

于 2012-09-10T10:25:52.383 回答
0

不能保证WriteTCP 连接一端的调用与另一端的调用之间存在 1-1 对应关系Read。每次调用到Read

您可以执行任何适当的工作以将这些数据块重新转换为消息 - 或者如果您想要其他东西来完成这项艰苦的工作,则可以切换到更高级别的技术(例如 WCF)。

于 2012-09-10T10:26:23.513 回答