2017-08-16 89 views
0

我有一个Python脚本创建TCP服务器,我想执行它的树莓派开机。我已经把Python脚本中的.bashrc并执行上的引导,但它显示了以下错误:TCP服务器(蟒蛇):地址已在使用

s.bind(('', 5555))
socket.error: [Errno 98] Address already in use

我已经创建了Matlab的TCP客户端和communciation完美的作品。我可以从Raspberry Pi 3命令行send/recv data手动执行服务器并关闭套接字,但即使在正确关闭后,如果我重新启动Raspberry Pi,启动时仍会显示错误。

我也曾尝试s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1),但我仍然得到错误。我不想每次手动更改端口号,因此任何帮助将不胜感激。

+0

为什么用MATLAB标记?这真的很重要吗?您是否在谈论MATLAB专家? –

+0

你有没有尝试过不同的端口号? – dhdavvie

+0

@AndrasDeak的TCP客户端在Matlab的托管,但是,是你是对的它不直接相关的Matlab的 – FarzanZaheer

回答

1

当您尝试使用已在使用的端口号时,会出现此消息。

由于您使用.bashrc文件启动了服务器进程,因此将尝试在系统引导时启动新的shell或在系统中启动该进程。

This article让你可以用其他的方式提出了一些建议。

注意,当你看到这条消息,它来源于反复尝试启动服务器,但好消息是,你应该仍然能够连接到服务器 - 消息确实意味着它已经运行。

+0

,所以我不知道我是否完全了解你的意见,是否当Raspberry Pi通电时,它会尝试重复启动服务器,当我尝试SSH进入Rspberry Pi时,它会显示错误?即使这种情况下,控制返回到命令行,我无法将客户端连接到我的服务器。对不起,如果我没有意义 – FarzanZaheer

+0

问题是,您的网络可能还没有启动。您应该延迟运行脚本,或根据网络服务将其作为服务启动。 – Sherlock70

+0

该消息暗示正在尝试多次尝试启动服务器:“地址已被使用”意味着某个端口上已有内容正在监听。因此,请考虑运行'.bashrc'文件的命令的条件。 – holdenweb