2012-12-16 65 views
0

客戶端和服務器都可以在Python中同時在同一個程序中運行。我想將客戶端連接到外部服務器和服務器,以同時接收來自外部服務器的消息。每當我的服務器收到來自外部服務器的消息時,我的客戶端都應相應地向該外部服務器發送消息服務器和客戶端在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選擇模塊或線程模塊來實現嗎?或者,還有更好的方法?

回答

1

TCP套接字是一個雙向字節流。您可以也應該通過同一個套接字與服務器進行所有通信。