什么是实现python TCP客户端的最佳方式?

时间:2015-04-17 08:41:51

标签: python multithreading tcpclient

我需要编写执行多个任务的python脚本:

  1. 从控制台读取命令并通过tcp/ip

  2. 发送给服务器
  3. 接收服务器响应,处理并输出到控制台。

  4. 创建此类脚本的最佳方法是什么?我是否必须创建单独的线程来侦听服务器响应,同时在主线程中与用户交互?有没有好的例子?

1 个答案:

答案 0 :(得分:1)

调用最佳方式代码示例相当偏离主题,但这太长了,无法发表评论。

有三种通用方法可以构建终端模拟器,例如应用程序:

  • 多个进程 - 好的旧Unix cu使用fork
  • 的方式
  • 多个线程 - 使用轻量级线程进程
  • 的上述变体
  • 使用带有多路复用io的select系统调用。

通常,第一种方法被认为更简单,一个线程(或进程)处理向上通信而另一个处理向下通信。而第三个虽然对代码比较棘手,但通常被认为是更有效的

由于Python支持多线程,多处理和select调用,您可以选择任何方法,稍微倾向于多线程而不是多处理,因为线程比进程轻,我看不到使用进程的理由。

仅关注意见

除非你以后用较低级别的语言编写一个模型进行重写,否则我认为性能不是关键问题,我的建议是在这里使用线程。