python服務(wù)器與android客戶端socket通信實例
本文實例講述了python服務(wù)器與android客戶端socket通信的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
首先,服務(wù)器端使用python完成,下面為python代碼:
import socket
def getipaddrs(hostname):#只是為了顯示IP,僅僅測試一下
result = socket.getaddrinfo(hostname, None, 0, socket.SOCK_STREAM)
return [x[4][0] for x in result]
host = ''#為空代表為本地host
hostname = socket.gethostname()
hostip = getipaddrs(hostname)
print('host ip', hostip)#應(yīng)該顯示為:127.0.1.1
port = 9999 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(4)
while True:
conn, addr = s.accept()
print('Connected by', addr)
data = conn.recv(1024)
if not data: break
conn.sendall(data)#把接收到數(shù)據(jù)原封不動的發(fā)送回去
print('Received', repr(data))
conn.close()
下面是Android代碼:
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
public class TcpClient extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
runTcpClient();
finish();
}
private static final int TCP_SERVER_PORT = 9999;//should be same to the server port
private void runTcpClient() {
try {
Socket s = new Socket("**.**.intel.com", TCP_SERVER_PORT);//注意host改成你服務(wù)器的hostname或IP地址
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
//send output msg
String outMsg = "TCP connecting to " + TCP_SERVER_PORT + System.getProperty("line.separator");
out.write(outMsg);//發(fā)送數(shù)據(jù)
out.flush();
Log.i("TcpClient", "sent: " + outMsg);
//accept server response
String inMsg = in.readLine() + System.getProperty("line.separator");//得到服務(wù)器返回的數(shù)據(jù)
Log.i("TcpClient", "received: " + inMsg);
//close connection
s.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//replace runTcpClient() at onCreate with this method if you want to run tcp client as a service
private void runTcpClientAsService() {
Intent lIntent = new Intent(this.getApplicationContext(), TcpClientService.class);
this.startService(lIntent);
}
}
安卓代碼中要注意的就是服務(wù)器的地址要寫對,而且要保證服務(wù)器是可以被你的網(wǎng)段訪問的。
希望本文所述對大家的Python程序設(shè)計有所幫助。
- Android Socket通信詳解
- Android編程之客戶端通過socket與服務(wù)器通信的方法
- Android中Socket通信的實現(xiàn)方法概述
- android利用websocket協(xié)議與服務(wù)器通信
- Android中使用socket通信實現(xiàn)消息推送的方法詳解
- 詳解Android 基于TCP和UDP協(xié)議的Socket通信
- Android Socket通信實現(xiàn)簡單聊天室
- Android中socket通信的簡單實現(xiàn)
- Android開發(fā)中Socket通信的基本實現(xiàn)方法講解
- Android Socket通信的簡單實現(xiàn)
相關(guān)文章
Python中循環(huán)后使用list.append()數(shù)據(jù)被覆蓋問題的解決
這篇文章主要給大家介紹了關(guān)于Python中循環(huán)后使用list.append()數(shù)據(jù)被覆蓋問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07python使用opencv對圖像添加噪聲(高斯/椒鹽/泊松/斑點)
這篇文章主要介紹了python使用opencv對圖像添加噪聲(高斯/椒鹽/泊松/斑點),具有一定的學(xué)習(xí)價值,需要的小伙伴可以參考一下,希望對你有所幫助2022-04-04詳解Python中@staticmethod和@classmethod區(qū)別及使用示例代碼
這篇文章主要介紹了詳解Python中@staticmethod和@classmethod區(qū)別及使用示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12python實現(xiàn)的udp協(xié)議Server和Client代碼實例
這篇文章主要介紹了python實現(xiàn)的udp協(xié)議Server和Client代碼實例,需要的朋友可以參考下2014-06-06Python multiprocess pool模塊報錯pickling error問題解決方法分析
這篇文章主要介紹了Python multiprocess pool模塊報錯pickling error問題解決方法,結(jié)合實例形式分析了multiprocess pool模塊報錯pickling error的原因與解決方法,需要的朋友可以參考下2019-03-03python爬蟲開發(fā)之使用Python爬蟲庫requests多線程抓取貓眼電影TOP100實例
這篇文章主要介紹了python爬蟲開發(fā)之使用Python爬蟲庫requests多線程抓取貓眼電影TOP100實例,需要的朋友可以參考下2020-03-03