簡體   English   中英

為什么我沒有任何錯誤?

[英]why i didn't get any error?

我想知道當服務器在特定端口與客戶端建立連接並且另一個客戶端要從該端口與服務器建立連接時發生的異常名稱...

因此,我將服務器,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

客戶1:

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)

client1的代碼因錯誤而失敗:

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

這是因為python 2中的bytesstr相同,並且僅接受一個字符串參數,功勞alecxe

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM