1
我完成了一個Android客戶端代碼,它的工作;並且暫時應該從apache http服務器接收的數據被仿真以從sd卡獲取數據。Android客戶端連接到Apache上的Python服務器端代碼
現在,我正在使用套接字庫處理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()
線索,線索是從專家的要求...... 感謝
您可以通過Android設備以外的其他方式連接到您的服務器,例如:您的網絡瀏覽器?如果將服務器主機更改爲'10.0.2.2',該怎麼辦?此外,你的服務器進程可能需要高權限才能綁定到端口80(你是否看到'socket.error:[Errno 13] Permission denied')。 – mhawke
您在客戶端和/或服務器上看到什麼錯誤?您可能只需要調用httpConn.getInputStream()來返回響應。 – Mike
是的,網絡瀏覽器正在工作,已經嘗試了10.0.2.2和服務器的IP地址。此外,python中的代碼不能有10.0.2.2,因爲這是在Apache httpd上的pc上運行的服務器代碼。 – AliR