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 break语句详解
Mar 11 Python
Python中的自定义函数学习笔记
Sep 23 Python
python中反射用法实例
Mar 27 Python
用C++封装MySQL的API的教程
May 06 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
Jan 07 Python
Python实现简单文本字符串处理的方法
Jan 22 Python
pytorch梯度剪裁方式
Feb 04 Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
Mar 13 Python
通过实例解析python subprocess模块原理及用法
Oct 10 Python
Python中的程序流程控制语句
Feb 24 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
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
PHP学习笔记之二
2011/01/17 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
eslint 的三大通用规则详解
2019/05/16 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
jQuery实现的上拉刷新功能组件示例
2020/05/01 jQuery
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
Python中集合类型(set)学习小结
2015/01/28 Python
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
python实现折半查找和归并排序算法
2017/04/14 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
Django实现文件上传下载功能
2019/10/06 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
python访问hdfs的操作
2020/06/06 Python
Visual Studio Code搭建django项目的方法步骤
2020/09/17 Python
python脚本定时发送邮件
2020/12/22 Python
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
护士自我评价范文
2014/01/25 职场文书
乡镇党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
吴仁宝观后感
2015/06/09 职场文书
干部考核工作总结2015
2015/07/24 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript