Python套接字错误号107:未连接传输终结点
编辑:术语RTFM的存在有一个非常好的理由。阅读。。。手工作业。如果我真的读过手册,我就会知道socket.accept()会生成一个客户端套接字,用于与客户端通信。显然你应该用这个 我正在使用套接字用Python编写一个简单的聊天程序。到目前为止,我的代码如下(我是para编码,真正的东西太长了) 服务器类和导入:Python套接字错误号107:未连接传输终结点,python,sockets,tcp,Python,Sockets,Tcp,编辑:术语RTFM的存在有一个非常好的理由。阅读。。。手工作业。如果我真的读过手册,我就会知道socket.accept()会生成一个客户端套接字,用于与客户端通信。显然你应该用这个 我正在使用套接字用Python编写一个简单的聊天程序。到目前为止,我的代码如下(我是para编码,真正的东西太长了) 服务器类和导入: import socket import os import socket from subprocess import Popen, PIPE import threading
import socket
import os
import socket
from subprocess import Popen, PIPE
import threading
class Server:
def __init__(self,name,port=5001):
self.name = name
self.port = port
self.server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.server_socket.bind(('',self.port))
self.server_listen()
def server_listen(self):
self.server_socket.listen(5)
while 1:
self.client, self.address = self.server_socket.accept()
self.discourse()
def discourse(self):
DisplayMessages(self.server_socket).start() #This is defined below
while 1:
#This sends messages to the client, also listening with DisplayMessages
user_input = str(input(self.name + ' > '))
send_bufr = '!dmsg :' + self.name + ' ' + user_input + '\r\n'
self.client.send(bytearray(send_bufr, 'utf-8'))
我将省略Client类,因为它是相同的东西,只是它连接到:
self.client_socket.connect((self.host,self.port))
而不是像服务器那样接受连接。它使用相同的方法将输入发送到服务器中的self.discussion。下面是DisplayMessage类。它作为自己的线程启动,并且是发生错误的地方(仅在服务器上,而不是客户端)
错误发生在这一行:
recv_bufr = (recv_bufr +
self.socket.recv(1024).decode('utf-8'))
但仅当服务器类使用DisplayMessage类时。我为这个问题的长度道歉。我想发布太多的代码,而不是太少。谢谢 你有没有试着用Wireshark捕捉你的传输,并检查谁关闭了连接。所以。。。编辑是回答还是澄清?
recv_bufr = (recv_bufr +
self.socket.recv(1024).decode('utf-8'))