第一条消息后拒绝套接字连接

时间:2014-03-21 12:04:41

标签: python matlab sockets

我通过套接字与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行,in       s.connect((主机,端口))     文件“/usr/lib/python2.7/socket.py”,第224行,在meth       return getattr(self._sock,name)(* args)   socket.error:[Errno 111]拒绝连接

为什么同一命令第二次引发错误?我的第一个命令后发生了什么变化?

1 个答案:

答案 0 :(得分:0)

您正在使用传统版本的netcat(netcat-traditional),它不支持-k选项。您可以在终端输入man nc确认检查netcat的手册页。

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

现在使用命令

切换到netcat-openbsd版本

sudo update-alternatives --config nc 并选择netcat-openbsd。

现在你可以使用nc -lk 25771。 这会在端口25771上侦听多个连接。

您也可以使用此处讨论的命令 Netcat: using nc -l port_number instead of nc -l -p port_number