簡體   English   中英

第一條消息后拒絕套接字連接

[英]Socket connection refused after first message

我通過套接字與Matlab通信Python。 但是,即使在去那里之前,我也想用netcat測試套接字。 所以我使用nc -lkp 25771建立服務器,並使Python客戶端向此服務器發送消息:

import socket
host = 'localhost'
port = 25771
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send('Hello there')
s.close()

運行python client.py服務器打印出'Hello there'; 但是,在我嘗試再次運行客戶端腳本之后,它會引發異常。

回溯(最近一次調用最后一次):文件“client.py”,第13行,在s.connect((主機,端口))文件“/usr/lib/python2.7/socket.py”,第224行,在meth return getattr(self._sock,name)(* args)socket.error:[Errno 111]連接被拒絕

為什么同一命令第二次引發錯誤? 我的第一個命令后有什么變化?

您正在使用不支持-k選項的傳統版本的netcat(netcat-traditional)。 您可以通過在終端中輸入man nc來確認檢查netcat的手冊頁。

使用命令sudo apt-get install netcat-openbsd安裝netcat-openbsd版本

現在使用該命令切換到netcat-openbsd版本

sudo update-alternatives --config nc並選擇netcat-openbsd。

現在你可以使用nc -lk 25771。 這將偵聽端口25771上的多個連接。

你也可以使用這里討論的命令Netcat:使用nc -l port_number而不是nc -l -p port_number

暫無
暫無

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

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