手机
当前位置:查字典教程网 >脚本专栏 >python >python服务器与android客户端socket通信实例
python服务器与android客户端socket通信实例
摘要:本文实例讲述了python服务器与android客户端socket通信的方法。分享给大家供大家参考。具体实现方法如下:首先,服务器端使用py...

本文实例讲述了python服务器与android客户端socket通信的方法。分享给大家供大家参考。具体实现方法如下:

首先,服务器端使用python完成,下面为python代码:

复制代码 代码如下:#server.py

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)#应该显示为: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)#把接收到数据原封不动的发送回去

print('Received', repr(data))

conn.close()

下面是Android代码:

复制代码 代码如下:import java.io.BufferedReader;

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改成你服务器的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);//发送数据

out.flush();

Log.i("TcpClient", "sent: " + outMsg);

//accept server response

String inMsg = in.readLine() + System.getProperty("line.separator");//得到服务器返回的数据

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);

}

}

安卓代码中要注意的就是服务器的地址要写对,而且要保证服务器是可以被你的网段访问的。

希望本文所述对大家的Python程序设计有所帮助。

【python服务器与android客户端socket通信实例】相关文章:

python实现socket客户端和服务端简单示例

python定时采集摄像头图像上传ftp服务器功能实现

python搭建简易服务器分析与实现

python实现进程间通信简单实例

python装饰器使用方法实例

python中常用的各种数据库操作模块和连接实例

python 多进程通信模块的简单实现

使用python Django做网页

python快速排序代码实例

Python通过websocket与js客户端通信示例分析

精品推荐
分类导航