为什么我没有得到任何错误?

时间:2016-03-04 14:36:12

标签: python python-2.7 exception server client

我想知道当服务器与特定端口中的客户端连接时发生的异常名称,而另一个客户端想要从该端口建立到服务器的连接......

所以我创建服务器,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)

1 个答案:

答案 0 :(得分:0)

client1的代码失败,错误:

TypeError: str() takes at most 1 argument (2 given)

这是因为bytes中的python 2str相同,并且只接受一个字符串参数,信用转到alecxe