多线程和套接字编程(多连接)的问题

时间:2019-02-03 16:16:50

标签: python

我正在尝试制作服务器/客户端程序 第一个线程用于通过TCP的Shell命令 第二个线程捕获屏幕快照,并通过TCP发送 最后一个线程通过Tcp发送一个数组

现在我想为每个线程创建一个连接 我应该如何实现呢?(我只有一个端口,没有更多...)

1 个答案:

答案 0 :(得分:0)

我只想指出您的问题对于Stack Overflow来说太笼统了,但我会尽力尝试回答您。

因此简短的答案是这无法完成。对于一个给定的主机,您不能在同一端口上绑定多个套接字。具体来说,这意味着您将无法将多个套接字绑定到127.0.0.1:7777,每个端口只能绑定一个套接字。

但是,如果我是您,我会考虑整个程序只有一个TCP套接字。对我来说,为每个线程建立一个TCP连接似乎毫无用处,但同样,您没有提供很多有关上下文和限制的信息。

所以您可以:

  • 您的主线程读取命令行和命令行的标准输入 在“网络线程”中发布要在套接字上发送的消息 如下所述。
  • 您的“屏幕截图线程”还将发布要在 将由“网络线程”读取的队列
  • 与您的“数组线程”相同
  • 最后,您有一个网络线程可以使用所谓的 同步机制,用于在线程安全的情况下读取消息队列 并发送由其他人发布到队列中的每个消息 线程。

(再次尝试使内容尽可能清晰,但我只能处理所提供的信息)

从这里开始,您可以对线程安全的消息排队方法进行更多的研究,this似乎是一个很好的起点。

搜索python同步机制,线程安全队列或列表和套接字,这些查询应该会产生一些有趣的结果!

希望这会有所帮助!