android 4g网络注册不上去,无法访问android serversocket 4g网络

我有一个应用程序要求从pythonweb服务器接收android应用程序中的数据。我已经设置了一个本地环境来测试,在本地托管一个python服务器。使用sockets创建连接,服务器套接字在android应用程序上,客户端是python服务器。我基本上需要从服务器接收状态更新到应用程序,而无需请求(通过POST with volley,或类似于改造的东西)。在

这是python服务器中的客户端套接字。。。在@app.route('/clientMessage', methods=['GET', 'POST'])

def clientMessage():

address = request.values.get('address')

host = address

port = 6667

#create an INET, STREAMing socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((host, port))

#send message using socket

s.sendall("please work\n")

return "msg sent"

下面是android主活动,其中包含侦听服务器套接字的线程

^{pr2}$

当android手机与python服务器在同一个内部/本地网络中时,一切正常。一旦我关闭无线连接到4g上,python就会发出这个错误。如果有什么不同的话,我用的是mac电脑。在~/Documents/androidProjects/pythonExamples$ python serverSockets.py

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

[2016-11-04 09:45:05,876] ERROR in app: Exception on /clientMessage [GET]

Traceback (most recent call last):

File "/Library/Python/2.7/site-packages/flask/app.py", line 1988, in wsgi_app

response = self.full_dispatch_request()

File "/Library/Python/2.7/site-packages/flask/app.py", line 1641, in full_dispatch_request

rv = self.handle_user_exception(e)

File "/Library/Python/2.7/site-packages/flask/app.py", line 1544, in handle_user_exception

reraise(exc_type, exc_value, tb)

File "/Library/Python/2.7/site-packages/flask/app.py", line 1639, in full_dispatch_request

rv = self.dispatch_request()

File "/Library/Python/2.7/site-packages/flask/app.py", line 1625, in dispatch_request

return self.view_functions[rule.endpoint](**req.view_args)

File "serverSockets.py", line 66, in clientMessage

s.connect((host, port))

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 228, in meth

return getattr(self._sock,name)(*args)

error: [Errno 51] Network is unreachable

127.0.0.1 - - [04/Nov/2016 09:45:05] "GET /clientMessage?address=100.74.228.97 HTTP/1.1" 500 -

我已经在路由器上转发了那个端口,并且可以通过它ping站点,这样我就知道流量正从我的网络流向网络,但是我不明白为什么它不能到达android设备。我也试过很多不同的端口,可能有一个我需要使用的特定端口。这是我第一次玩sockets,我还是一个新手android开发人员。我相信当我把它移到heroku托管的公共python服务器上时,我肯定会更多地考虑安全性和ssl,但是谁能告诉我为什么当android设备在公共网络上时,它不能到达它?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值