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

问题描述:

我需要编写Python脚本执行几项任务:什么是实现python TCP客户端的最佳方式?

  1. 读取控制台命令,并在tcp/ip

  2. 发送到服务器接收服务器响应,进程,使输出到控制台。

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

+0

为什么你需要两个线程?上一个命令完成后,您是否关心来自服务器的消息?服务器是否关心用户在命令中键入的内容?我不觉得这两个工作需要并行发生 – Eric

+0

比我怎样从控制台同时接收来自服务器和用户命令的消息? – Dmitry

+0

你需要吗?服务器是否曾经发送过一些不响应命令的东西?它不能只是在命令和响应之间切换吗?即'while True:get_cmd(); send_to_server(); dispay_response()' – Eric

呼唤一个最好的办法代码示例相当题外话,但此时间过长是注释。

一般有三种方式来建立这些终端模拟器像应用:

  • 多个进程 - 好旧的Unix cufork
  • 多线程的工作方式 - 从上面的一个变种使用光线方式线程进程
  • 使用select系统调用与多路复用io。

通常,2个第一种方法被认为是更直接的代码,一个线程(或进程)处理上行通信,而另一个处理下行通信。由于Python支持多线程,多处理和select调用,因此您可以选择任何方法,因为线程比进程更轻,而且多线程优先于多处理,所以我可以选择任何方法看不到使用过程的理由。

在刚刚我意见继

除非如果你是在一个较低的水平语言后重写它上面书写的模式,我认为性能不是问题的关键,我的建议是使用线程这里。