Python点对点,套接字

时间:2015-12-11 08:16:37

标签: python sockets

我一直在构建一个简单的客户端/服务器应用程序,但服务器似乎是多余的,因为我只使用服务器将信息传递给另一个客户端。所以我宁愿选择点对点。

两个对等体是否可以打开套接字并不断收听,同时还能够动态发送给其他对等体?

同行1

def receive():
    host = "127.0.0.1"
    port = 5002

    s = socket.socket()
    s.bind((host, port))

    s.listen(1)
    while True:
        c, addr = s.accept()
        while True:
            data = c.recv(1024)
            if not data:
                break
            print(data)
            c.send(bytes("Ordre registreret", "utf-8"))
        c.close()

def send():
    host = "127.0.0.1"
    port = 5001

    s = socket.socket()
    s.connect((self.host, self.port))

    s.send("Test", "utf-8")

    data = s.recv(1024)
    data = str(data, "utf-8")
    s.close()

同行2

def receive():
    host = "127.0.0.1"
    port = 5001

    s = socket.socket()
    s.bind((host, port))

    s.listen(1)
    while True:
        c, addr = s.accept()
        while True:
            data = c.recv(1024)
            if not data:
                break
            print(data)
            c.send(bytes("Ordre registreret", "utf-8"))
        c.close()

def send():
    host = "127.0.0.1"
    port = 5002

    s = socket.socket()
    s.connect((self.host, self.port))

    s.send("Test", "utf-8")

    data = s.recv(1024)
    data = str(data, "utf-8")
    s.close()

所以基本上两个几乎相同的对等体,但不同的端口用于绑定和连接。主人可以是同一个人吗?另外,如果这种方式可行,我是否必须使用线程来允许其他功能,因为接收方法将处于无限循环监听中?

0 个答案:

没有答案