Python TCP 套接字; 带注释的简单服务器和客户端示例

这是两个协同工作的示例程序。一个是简单的服务器,另一个是简单的客户端。在一个窗口中启动服务器:

python tserver.py

如果需要,编辑客户端源文件中的服务器地址。然后跑

python tclient.py

客户端连接到服务器,然后从控制台请求输入,然后将其发送到服务器。对于每个接收到的缓冲区,服务器会预先添加一些预设信息并将其发送回客户端。

我已经解决了在 python2 和 python3 之间移植代码时出现的某些陷阱 - 特别是字节与字符串差异。对此的完整解释将需要大量的空间并分散注意力。

注意事项:

特别是,服务器示例侧重于服务器将执行的 socket 操作,但为了清楚起见序列化。因此,它一次只接受一个连接。 真正的程序要么分叉一个新进程来处理每个连接,要么使用 select 一次处理多个连接。

真正的程序将处理各种套接字调用中的异常,并优雅地恢复或退出。

真正的程序需要担心消息边界(因为 TCP 不尊重这些边界)。由于这些程序在用户输入触发的时间发送单个缓冲区,因此已被忽略。