我目前正在用python学习socket编程,对于如何选择服务器要监听的端口感到困惑。我知道我不能选择某个特定的范围(最多3000或更多?),所以我选择的端口远远超出了这个数字(确切地说是7777)。在
在我的场景中,我希望使用不同数量的服务器(12到96的倍数)测试我的程序。到目前为止,我用12个服务器代码测试我的程序,将主机分配给localhost,端口号从7777到{}。在
有时当我运行程序时,python intepreter会说:Traceback (most recent call last):
File "/home/myUserName/sockettutorial/sockettest4/ppc1/dir12/nwserver12.py", line 9, in
s.bind((host,port))
File "", line 1, in bind
socket.error: [Errno 98] Address already in use
尽管我已经终止了所有可能仍然监听所述端口的相关进程(使用netstat -plan来检查这些进程的pid)。在
我已将此部分包含在服务器代码中:
^{pr2}$
我这里的问题是,尽管有错误,程序仍按预期工作,有时当我运行我的程序时,我根本没有收到这个错误,有时我确实收到了。但是,这个错误本身有点烦人,如果我想消除它,有没有办法让机器/主机为服务器分配可用端口,还是必须手动分配它们?在
谢谢你的回答!在