无法使用Asyncore Python接收数据

2024-10-03 00:16:53 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我是python编程新手。我能知道为什么我的服务器没有收到我的客户发送的消息吗?我正在尝试将数据从客户端发送到服务器,并使服务器在控制台中显示它。。。在

在客户端.py在

import asyncore
import socket


class Client(asyncore.dispatcher):
    def __init__(self,IPAddress_Server,intServerPort):
        asyncore.dispatcher.__init__(self)

        self.IPHostEntry_Server = (IPAddress_Server,intServerPort)
        self.create_socket(socket.AF_INET,socket.SOCK_STREAM)
        self.set_reuse_addr()
        self.connect(self.IPHostEntry_Server)

    def handle_connect(self):
        print("Successfully connected to {0}".format(self.IPHostEntry_Server))

    def handle_write(self):
        bytesTx = b"DDDDDDD"
        self.send(bytesTx)
        self.close()


client = Client("127.0.0.1", 4444)

asyncore.loop()

在服务器.py在

^{pr2}$

Tags: pyimportself服务器client客户端serverinit
1条回答
网友
1楼 · 发布于 2024-10-03 00:16:53

您的服务器接受连接,然后将它们放到地板上:

def handle_accept(self):
    pair = self.accept()
    if pair is not None:
        sock, addr = pair
        print ('Incoming connection from %s' % repr(addr))

服务器套接字与服务器套接字接受的每个连接分开。在

如果您想从连接中读取字节,那么您必须做更多的工作来处理it上的读取事件。在

我建议你看看Twisted。它比asyncore更主动地维护、更好地记录和更具特性。下面是一个基于Twisted的最小示例,它可以实现我认为你希望你的应用程序做的事情:

德克萨斯州_客户端.py在

^{pr2}$

德克萨斯州_服务器.py在

^{3}$

相关问题 更多 >