多客户端一台服务器消息传递python套接字

问题描述

在这里我有一个服务器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,PORT))

    s.sendall(b'Hello,abcd')
    #time.sleep (3.0)
    #data = s.recv(1024)

因此,应将客户端B的消息(问候世界)发送给客户端C,并将客户端C的消息(问候abcd)也接收给客户端B。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)