我想知道当服务器与特定端口中的客户端连接时发生的异常名称,而另一个客户端想要从该端口建立到服务器的连接......
所以我创建服务器,client1和client2但是当服务器和client1连接在一起时,我运行client3时没有任何错误,它们都继续运行。
我想知道为什么我没有收到任何错误?
'1'在这一行中的作用是什么:serverSocket.listen(1)
这是服务器代码:
import socket
serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serverSocket.bind(('', 80))
print("Host=%s" %str(serverSocket.getsockname()))
serverSocket.listen(1)
clientSocket, addr = serverSocket.accept()
print("Got a connection from %s" % str(addr))
data = clientSocket.recv(1024)
print("from Client:%s "%str(addr))
print("\n data:%s "%str(data.decode("utf-8")))
#consciously i didn't close the the sockets
client1:
import socket
TCP_IP = '127.0.0.1'
TCP_PORT = 80
BUFFER_SIZE = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(bytes("test code", 'utf-8'))
data = s.recv(BUFFER_SIZE)
print(type(data))
s.close()
客户端2
import socket
TCP_IP = '127.0.0.1'
TCP_PORT = 80
BUFFER_SIZE = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(bytes("test3", 'utf-8'))
data = s.recv(BUFFER_SIZE)
print(type(data))
s.close()
其他,为什么当我运行client2时,服务器没有显示任何从它获得连接的消息,如:
Got a connection from ('127.0.0.1', 64358)
答案 0 :(得分:0)
client1
的代码失败,错误:
TypeError: str() takes at most 1 argument (2 given)
这是因为bytes
中的python 2
与str
相同,并且只接受一个字符串参数,信用转到alecxe
。