首页 文章

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

提问于
浏览
3

我通过套接字与Matlab通信Python . 但是,即使在去那里之前,我想用netcat测试套接字 . 所以我使用 nc -lkp 25771 Build 服务器,并使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]连接被拒绝

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

1 回答

  • 0

    您正在使用不支持-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: using nc -l port_number instead of nc -l -p port_number

相关问题