请教各位 Python 中的 Socket 编程

2017-10-16 19:19:55 +08:00
 tanl

最近在学习计算机网络自顶向下这本书 看到书本 P107 开始讲的套接字编程 我照着书本打了一遍代码,测试下来在本机(也就是 ip 127.0.0.1 )可以运行 但是我把 UDPServer.py 放到我的阿里云服务器(并将 hostname 改为服务器公网 ip )上运行,UDPClient 就没反应了?请问是什么原因呢?

客户端

from socket import *
serverName = "106.14.209.139"
serverPort = 10002
clientSocket = socket(AF_INET,SOCK_DGRAM)
message = raw_input("Input lowercase sentence:")
clientSocket.sendto(message,(serverName, serverPort))
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print serverAddress
print modifiedMessage
clientSocket.close()

阿里云 ubuntu 服务器上

from socket import *
serverPort = 88
serverSocket = socket(AF_INET,SOCK_DGRAM)
serverSocket.bind(("", serverPort))
print "The server is ready to receive"
while True:
        message, clientAddress = serverSocket.recvfrom(2048)
        print clientAddress,message
        modifiedMessage = message.upper()
        serverSocket.sendto(modifiedMessage, clientAddress)
2653 次点击
所在节点    Python
13 条回复
wcsjtu
2017-10-16 19:20:41 +08:00
防火墙端口开了没
tanl
2017-10-16 19:21:49 +08:00
上面第二段代码端口号忘改了,改成 10002
tanl
2017-10-16 19:22:23 +08:00
@wcsjtu 是要开启 windows 上的 10002 端口吗?
nosilence
2017-10-16 19:23:00 +08:00
大概率情况,你的阿里云的防火墙策略组没配置,端口没开。
wcsjtu
2017-10-16 19:23:46 +08:00
@tanl -.-! 我记得阿里云是要自己开放服务端口的。
Hzzone
2017-10-16 19:24:05 +08:00
服务器 bind 的端口和客户端发送的端口都不是同一个。。。
wcsjtu
2017-10-16 19:25:50 +08:00
@tanl localhot 能够访问的服务,其他主机不能访问的话,一般就 3 个原因:1. 网卡绑错了 2. 防火墙端口没开 3. 主机不通
tanl
2017-10-16 19:26:12 +08:00
@Hzzone 这个复制错了,我在上面说明了
tanl
2017-10-16 19:36:32 +08:00
@wcsjtu 我去好坑..成功了,要自己去阿里云官网配安全组,谢谢啦
tanl
2017-10-16 19:36:52 +08:00
@nosilence 感谢
rogwan
2017-10-16 20:18:55 +08:00
阿里云的经典网络直接可以访问没问题,专有网络需要自己配置端口,才有访问权限。
ksupertu
2017-10-16 23:08:35 +08:00
安全组没放端口策略
crazykuma
2017-10-17 14:18:34 +08:00
借楼问一下,python 的 socket 编程跟其他语言比速度可以接受吗?会不会慢很多?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/398109

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX