python服务器与android客户端socket通信实例
作者:shichen2014 发布时间:2022-04-28 02:30:31
标签:python,android,socket
本文实例讲述了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程序设计有所帮助。


猜你喜欢
- 实验目的:用socket 模拟一个微型的web服务器,当py脚本run起后,实微型web server架起了,然后用本地浏览器访问
- 本文研究的主要是Django1.10文档的深入学习,Applications基础部分的相关内容,具体介绍如下。Applications应用D
- 本文实例讲述了Python常见数据类型转换操作。分享给大家供大家参考,具体如下:类型转换主要针对几种存储工具:list、tuple、dict
- 本文主要是记录ubuntu 16.04下python环境配置,具体内容如下对于ubuntu 16.04,由于本身是自带python,这样就减
- 一.图像金字塔原理上一篇文章讲解的图像采样处理可以降低图像的大小,本文将补充图像金字塔知识,了解专门用于图像向上采样和向下采样的pyrUp(
- 一、前言最近忙里偷闲,做了一个部署数据库及IIS网站站点的WPF应用程序工具。 二、内容此工具的目的是:根据.sql文件在本机上部
- 很多时候基于php+MySQL建立的网站所出现的系统性能瓶颈往往是出在MySQL上,而MySQL中用的最多的语句就是查询语句,因此,针对My
- (f *File).Name()这个函数是返回文件的名称,函数原型func (f *File) Name() string要文件的指针操作,
- 什么是pyscriptpyscript由来自 Anaconda 的团队开发,包括 Peter Wang、Fabio Pliger 和 Phi
- 本文介绍MySQL数据库中执行select查询语句,查询指定列的数据,即指定字段的数据。再来回顾一下SQL语句中的select语句的语法:S
- 在平时,常常会提醒自己要做一个善于发现的人,时刻发现细节,这样才会更加懂得生活、会让生活更加精彩。在学习上也是如此,我们常常会发现有很多网站
- 假设现有需求如下:需要一个页面分页展示信息,在该页面添加搜索框以提供检索功能。那么,我们知道,展示信息和检索功能是在同一个页面,也就是共用一
- this指向当前作用域的对象,如果找不到,往上一层找,直到window。this 关键字很好用,很灵活,正因为很灵活,所以一不小心你就会掉进
- logging是python语言中的一个日志模块,专门用来写日志的,日志级别通常分为debug、info、warning、error、cri
- 某天写代码突然县道这个问题,顺势总结一波JavaScript 函数和变量声明的“提前”(hoist)行为简单的说 如果我们使用 匿名函数va
- (1)最近真是郁闷,在Myeclipse中使用DB Browser但出现以下问题:(2)然后赶紧百度,求大神解决,主要的解决方法试一下几种:
- python爬虫写起来非常快,虽然也可以用java,但是没有python来的简
- 由于需要从某个网页上下载一些PDF文件,但是需要下载的PDF文件有几百个,所以不可能用人工点击来下载。正好Python有相关的模块,所以写了
- 模块的作用是:允许从任何文件里得到任何一行或几行,并且使用缓存进行优化。有几个API接口linecache.getlines(filenam
- 本文实例讲述了python二分查找算法的递归实现方法。分享给大家供大家参考,具体如下:这里先提供一段二分查找的代码:def binarySe