首页 > 解决方案 > 我正在设置一个 TCP 客户端/服务器程序,用于区分 Python 3 中的 X 和 Y 两个客户端。我在处理线程时遇到了困难

问题描述

知道如何让我的客户端和服务器程序等到与服务器建立两个客户端连接之后,然后允许按连接顺序将句子输入到两个客户端程序中吗?这是我到目前为止所得到的。

# server.py
from socket import *
from _thread import *
import threading

serverPort = 12000
serverSocket = socket(AF_INET, SOCK_STREAM)
serverSocket.bind(('',serverPort))
serverSocket.listen(2) # Want to connect 2 clients
print('The server is waiting to receive 2 connections.... \n')

def ClientThread(X,Y):
        active = True
        while active:
                sentenceX = X.recv(1024).decode()
                sentenceY = Y.recv(1024).decode()
                capSentenceX = sentenceX.upper()
                catSentenceY = sentenceY.upper()

while True:
        connectionSocketX, addrX = serverSocket.accept()
        print('Accepted first connection, calling it connection X')

        connectionSocketY, addrY = serverSocket.accept()
        print('Accepted second connection, calling it connection Y\n')

        print('Waiting to receive message from client X and client Y....')

        ClientThread(connectionSocketX, connectionSocketY)
        connectionSocketX.send(capitalizedSentenceX.encode())
        connectionSocketY.send(capitalizedSentenceY.encode())
        connectionSocketX.close()
        connectionSocketY.close()
# Client.py
from socket import *

serverName = 'localhost'
serverPort = 12000

clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName, serverPort))

sentence = input('Input lowercase sentence:')
clientSocket.send(sentence.encode())
modifiedSentence = clientSocket.recv(1024)

print('From Server: ', modifiedSentence.decode())

clientSocket.close()

标签: pythonmultithreadingtcp

解决方案


推荐阅读