当客户端断开连接时,服务器会打印无数的换行符

2024-04-24 15:48:55 发布

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

我在创建一个服务器的过程中,但我撞到了墙,似乎不能爬过去。。。你知道吗

在用户断开与服务器的连接之前,我的当前代码运行得非常好。大量的\n打印出来,我似乎不知道为什么。你知道吗

我知道问题出在recv函数上。我相信这与我的线程有关,但我似乎不知道它是什么。你知道吗

这是密码,如果有人能帮我,我将非常感激。你知道吗

def recv(self, obj, addr, s):
    while True:
        try:print obj.recv(1024)
        except:pass

def connect(self, port):
    s = socket.socket()
    s.bind(('', port))
    s.listen(1)
    self.clearscreen()

    print "Waiting for connections..."
    while True:
        obj, addr = s.accept()
        verify = obj.recv(1024)
        if verify == "ea25364e2dab91b40ae4f73163854b5d":
            print "\n"+str(addr) + " has connected.\n "
            self.conns[addr] = obj
            try:
                Thread(target=self.handle, args=(obj, addr, s)).start()
                Thread(target=self.recv, args=(obj, addr, s)).start()
            except:pass
        else:pass

Tags: self服务器trueobjportdefpasssocket
1条回答
网友
1楼 · 发布于 2024-04-24 15:48:55

所发生的是,您不断地从一个空的缓冲区获取和打印数据。你应该检查一下你正在接受的东西,以确保你确实得到了一些东西。你知道吗

data = obj.recv(1024)
if not data:
    return
print data

相关问题 更多 >