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打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
python魔法方法-属性转换和类的表示详解
Jul 22 Python
python基础练习之几个简单的游戏
Nov 10 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
Nov 20 Python
python中协程实现TCP连接的实例分析
Oct 14 Python
Python求两点之间的直线距离(2种实现方法)
Jul 07 Python
Django ModelForm组件使用方法详解
Jul 23 Python
python实现从wind导入数据
Dec 03 Python
Python hashlib常见摘要算法详解
Jan 13 Python
python使用python-pptx删除ppt某页实例
Feb 14 Python
解决django框架model中外键不落实到数据库问题
May 20 Python
Python实现图片指定位置加图片水印(附Pyinstaller打包exe)
Mar 04 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版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
又一个小巧的图片预加载类
2007/05/05 Javascript
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
javascript 操作文件 实现方法小结
2009/07/02 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
2013/03/18 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
2017/09/10 Javascript
vue-router history模式下的微信分享小结
2018/07/05 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
Python构建网页爬虫原理分析
2017/12/19 Python
python监控键盘输入实例代码
2018/02/09 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
python代码区分大小写吗
2020/06/17 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
车间班组长的职责
2013/12/13 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
运动会稿件200字
2014/02/07 职场文书
生物科学专业职业规划书范文
2014/02/11 职场文书
《恐龙》教学反思
2014/04/27 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
先进基层党组织材料
2014/12/25 职场文书
委托书格式范文
2015/01/28 职场文书
个人年终总结范文
2015/03/09 职场文书
创业计划书介绍
2019/04/24 职场文书