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

时间:2020-08-12 06:25:33

标签: python python-3.x sockets ipc

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

0 个答案:

没有答案