问题
如何创建一个在网络上工作的套接字服务器?
仅仅是正确的端口转发问题,还是我必须购买一个域?
如果我需要一个域,有没有免费的方法可以做到这一点?
背景
我目前正在使用 Windows 7(32 位)上的 Python 2.7.3 开发一个基本的IM项目。
我想使用 Python 将消息从控制台发送到我朋友的一台计算机。 这是非常宝贵的,但它只适用于一台机器。
在尝试通过 Internet 发送消息时,我尝试了几种策略。
由于我最终将使用我的 Mac 作为服务器,因此我使用了端口映射来转发不同的端口。当我这样做时,Python 通过给我以下错误消息来响应:
Enter the PORT number (1 - 10,000)4235 Socket Created Bind failed. Error Code : 49 Message Can't assign requested address Traceback (most recent call last): File "/Users/BigKids/Desktop/Server v3.py", line 18, in <module> sys.exit() SystemExit
我试图简单地将我的 IP 地址作为端口,但它会以错误消息响应:
Please enter the host's IP >>> 68.***.***.128 Enter the PORT number (1 - 10,000)2432 Socket Created Bind failed. Error Code : 10049 Message The requested address is not valid in its context Traceback (most recent call last): File "D:\Python Programs\Sockets\First Project\Server v3.py", line 19, in <module> sys.exit() SystemExit
这是必要的代码:
HOST = raw_input("Please enter the host's IP >>> ") PORT = input ("Enter the PORT number (1 - 10,000)") s = socket.socket(socket.AF_INET, socket.SOCK_STREAM ) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) print "Socket Created" try: s.bind((HOST, PORT)) except socket.error, msg: print "Bind failed. Error Code : " + str(msg[0]) + " Message " + str(msg[1]) sys.exit()