【发布时间】:2021-10-28 19:06:15
【问题描述】:
我对 Socket 编程很陌生,我开始做的第一件事就是在服务器和客户端之间进行简单的终端聊天。我想知道您如何通过 TCP 连接一次性发送整个消息数据(用户名、时间、消息等)。
我的第一次尝试是使用: 拆分数据,然后根据需要显示块,但我意识到它会阻止用户使用冒号。
第二个猜测是序列化......仍然不确定在流中发送多个字符串的最佳解决方案是什么。
提前致谢
【问题讨论】:
-
使用这么低级的技术,给你带来一堆低级的问题。有更成熟的技术可能更适合您的情况,例如 wep apis、signalr、grpc,仅举几例,虽然它们看起来效率较低且学习曲线较陡,但我可以保证您获得 tcp 解决方案健壮并按照您想要的方式工作将需要更长的时间,并且在许多方面可能会逊色。更不用说在 Visual Studio 中通常有模板以及许多教程和演练可以帮助您
-
为了让用户在使用你的分隔方法时使用冒号,你可以在你的协议中使用字符转义。如果用户键入
:,则在发送之前将其替换为例如\:。然后,对方站点必须在显示消息之前还原此过程。