python服务器与android客户端socket通信实例


Posted in Python onNovember 12, 2014

本文实例讲述了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 相关文章推荐
使用Python的urllib和urllib2模块制作爬虫的实例教程
Jan 20 Python
python结合shell查询google关键词排名的实现代码
Feb 27 Python
Python编程实现的简单神经网络算法示例
Jan 26 Python
Python中对数组集进行按行打乱shuffle的方法
Nov 08 Python
python读取txt文件中特定位置字符的方法
Dec 24 Python
Python变量类型知识点总结
Feb 18 Python
python调试神器PySnooper的使用
Jul 03 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
Sep 16 Python
python zip()函数使用方法解析
Oct 31 Python
关于python pycharm中输出的内容不全的解决办法
Jan 10 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
Python访问MySQL封装的常用类实例
Nov 11 #Python
python实现ipsec开权限实例
Nov 11 #Python
python获取文件后缀名及批量更新目录下文件后缀名的方法
Nov 11 #Python
python实现在目录中查找指定文件的方法
Nov 11 #Python
Python实现list反转实例汇总
Nov 11 #Python
用python实现面向对像的ASP程序实例
Nov 10 #Python
python求列表交集的方法汇总
Nov 10 #Python
You might like
PHP用户指南-cookies部分
2006/10/09 PHP
php防盗链的常用方法小结
2010/07/02 PHP
深入php数据采集的详解
2013/06/02 PHP
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
封装的原生javascript弹出层代码
2010/09/24 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
2016/08/05 Javascript
JQuery控制DIV的选取实现方法
2016/09/18 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
react-native 封装选择弹出框示例(试用ios&android)
2017/07/11 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
Python中列表、字典、元组数据结构的简单学习笔记
2016/03/20 Python
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
2019/07/04 Python
Python计算信息熵实例
2020/06/18 Python
python如何绘制疫情图
2020/09/16 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
六一节目主持词
2014/04/01 职场文书
个人工作主要事迹
2014/05/08 职场文书
共产党员岗位承诺书
2014/05/29 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
CSS 制作波浪效果的思路
2021/05/18 HTML / CSS