python中TCP套接字中两个客户端之间的简单数据传输
我正在尝试开发一个类似游戏的应用程序,其中我有两名玩家,他们输入单个单词,另一名玩家尝试想出另一个单词,该单词以另一名玩家单词的最后两个字符开头。例如,Player1输入:计算机,Player2输入:错误,Player1输入:橙色,Player2输入:性别等等。 我有一个server.py:python中TCP套接字中两个客户端之间的简单数据传输,python,sockets,tcp,Python,Sockets,Tcp,我正在尝试开发一个类似游戏的应用程序,其中我有两名玩家,他们输入单个单词,另一名玩家尝试想出另一个单词,该单词以另一名玩家单词的最后两个字符开头。例如,Player1输入:计算机,Player2输入:错误,Player1输入:橙色,Player2输入:性别等等。 我有一个server.py: import socket host = socket.gethostname() port = 12345 s = socket.socket(socket.AF_INET,socket.SOCK_STR
import socket
host = socket.gethostname()
port = 12345
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)# TCP socket object
s.bind((host,port))
s.listen(5)
print ("Waiting for players...")
namelist = []
def getLastTwoStrings(str):
last2 = str[-2:]
print (last2)
def getFirstTwoStrings(str):
first2 = str[:2]
print (first2)
while True:
clientSocket, address = s.accept()
data = clientSocket.recv(1024)
string = data.decode("utf-8")
clientSocket.send(bytes(string,"utf-8"))
namelist.append(string)
getLastTwoStrings(string)
getFirstTwoStrings(string)
clientSocket.close()
和player1.py
import socket
host = socket.gethostname()
port = 12345
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
print("Player 1(and Player 2) please enter a word:")
a=input()
data = s.send(bytes(a,"utf-8"))
s.close()
和player2.py
import socket
host = socket.gethostname()
port = 12345
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
print("Player 2 please enter a word:")
a=input()
data = s.send(bytes(a,"utf-8"))
s.close()
但是我需要把Player1的单词转给Player2。我可以将他们的每一句话发送到服务器并返回给他们。但不能单独做。有人知道如何实现这一点吗?每次调用
s.accept
都会覆盖当前客户端套接字clientSocket
。您需要保持两个客户端套接字连接。服务器可以从客户机接收一个,然后发送给另一个,反过来发送。