【问题标题】:Android client connecting to Python server side code on ApacheAndroid 客户端连接到 Apache 上的 Python 服务器端代码
【发布时间】:2012-08-27 01:35:52
【问题描述】:

我完成了一个 Android 客户端代码,它的工作;并且暂时模拟了应该从apache http服务器接收的数据以从sd卡获取数据。

现在,我正在使用套接字库编写 Python 中的服务器端代码;并测试 python 套接字文档中的默认套接字示例。

我面临的问题是Android客户端无法连接到这个服务器端代码。

Android 端代码尝试连接:

urlString = "http://10.0.2.2/cgi-bin/serverconnect.py";
URL url = new URL(urlString);
URLConnection conn = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection) conn;
try{
httpConn.connect();
......
}

serverconnect.py 在哪里:

# Echo server program
import socket

HOST = '127.0.0.1'     # Symbolic name meaning all available interfaces
PORT = 80              # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print 'Connected by', addr
while 1:
    data = conn.recv(1024)
    if not data: break
    conn.sendall(data)
conn.close()

需要专家提供线索和提示... 谢谢

【问题讨论】:

  • 你能从你的安卓设备以外的东西连接到你的服务器吗?你的网络浏览器?如果将服务器主机更改为10.0.2.2 会怎样?此外,您的服务器进程可能需要高权限才能绑定到端口 80(您看到socket.error: [Errno 13] Permission denied)。
  • 您在客户端和/或服务器上看到了什么错误?您可能只需要调用 httpConn.getInputStream() 即可返回响应。
  • 是的,网络浏览器正在工作,已经尝试了10.0.2.2和服务器的IP地址。此外,python 中的代码不能有 10.0.2.2,因为这是在 apache httpd 上的 pc 上运行的服务器代码。
  • @mhawke:没有错误,可以看到。代码只是在 httpcon.connect() 上抛出 IO 异常
  • 无法从安卓以外的浏览器访问服务器。任何提示如何使这个运行......

标签: android python client-server server-side


【解决方案1】:

此代码的初始问题已解决,即目标 Android 版本为 3.x + 所以我需要使用不同的线程进行网络访问。已针对不同的问题发起了一个新线程,因此感谢大家的回复。

【讨论】:

    猜你喜欢
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多