在这里,我有一个服务器A的脚本以及两个客户端B和C,如果我从客户端B发送消息,它应该通过服务器A接收到客户端C,反之亦然。由于我是Socket编程的新手,任何帮助都可以很棒。
服务器A
import socket, sys
socket.setdefaulttimeout(150)
host = ''
port = 50005
socksize = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
print("Server started on port: %s" % port)
s.listen(1)
while True:
print("Now listening...\n")
conn, addr = s.accept()
print(conn)
print ('New connection from %s:%d' % (addr[0], addr[1]))
data = conn.recv(socksize)
if not data:
break
elif data == 'killsrv':
conn.close()
sys.exit()
else:
print(data)
客户B
import socket
import time
HOST = '127.0.0.1' # The server's hostname or IP address
PORT = 50005 # The port used by the server
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, world')
#time.sleep (3.0)
#data = s.recv(1024).decode()
#print(data)
客户端C
import socket
import time
HOST = '127.0.0.1' # The server's hostname or IP address
PORT = 50005 # The port used by the server
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
s.sendall(b'Hello, abcd')
#time.sleep (3.0)
#data = s.recv(1024)
因此,应将客户端B的消息(问候世界)发送给客户端C,并将客户端C的消息(问候abcd)也接收给客户端B。