服务器和客户端都在python中的同一个程序中

时间:2012-12-16 18:56:41

标签: python multithreading sockets python-multithreading

客户端和服务器都可以在Python中同时在同一程序中运行。我想将客户端连接到外部服务器和服务器,以便同时从该外部服务器接收消息。每当我的服务器从该外部服务器接收消息时,我的客户端应相应地向该外部服务器发送消息。

以下是我试图实现的方式(只是连接部分)

import select
import socket


host = 'localhost'
portClient = 6000
portServer = 7000
backlog = 5
size = 1024

client = socket.socket()
server = socket.socket()

client.connect((host,portClient))
client.send('#JOIN')

server.bind((host,portServer))
server.listen(backlog)

running = 1

while running:
    c,address = server.accept()
    c.close()


client.close()
server.close()

当我运行此代码时,没有来自外部服务器的响应。 省略while循环时。我收到一条错误消息,说我们的服务器已经主动拒绝接受外部服务器。

我可以使用Python select模块或Threading模块实现这一目标吗?或者有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

TCP套接字是 双向字节流 。您可以而且应该通过同一个插槽与服务器进行所有通信。