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解析xml文件实例分析
May 27 Python
Python删除Java源文件中全部注释的实现方法
Aug 30 Python
python安装numpy&安装matplotlib& scipy的教程
Nov 02 Python
在Django中输出matplotlib生成的图片方法
May 24 Python
python3 kmp 字符串匹配的方法
Jul 07 Python
python多行字符串拼接使用小括号的方法
Mar 19 Python
python实现遍历文件夹修改文件后缀
Aug 28 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 Python
python xlwt如何设置单元格的自定义背景颜色
Sep 03 Python
如何安装2019Pycharm最新版本(详细教程)
Sep 26 Python
使用TensorFlow直接获取处理MNIST数据方式
Feb 10 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 Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
JS常用算法实现代码
2016/11/14 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
vue elementui form表单验证的实现
2018/11/11 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
小小聊天室Python代码实现
2016/08/17 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
python是否适合网页编程详解
2019/10/04 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
《春雨》教学反思
2014/04/24 职场文书
文明礼仪伴我行演讲稿
2014/05/12 职场文书
机关保密工作承诺书
2015/05/04 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
大学运动会加油稿
2015/07/22 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
python flappy bird小游戏分步实现流程
2022/02/15 Python