首页 文章

TCP客户端服务器问题[重复]

提问于
浏览
0

可能重复:TCP客户端问题

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

2 回答

  • 0

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

    要在客户端将数据分成消息,您需要一些TCP上的应用程序协议 . 例如,HTTP使用CRLFCRLF来确定HTTP消息的结束 .
    根据您的需要,您可以使用现有的或自己制作的 .

  • 0

    在TCP连接的一端调用 Write 和在另一端调用 Read 之间不能保证1-1对应 . 每次调用 Read 时,您可能不会收到任何数据,部分消息,整个消息或多条消息

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

相关问题