本文实例讲述了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程序设计有所帮助。

android 手机 与 python服务器_python服务器与android客户端socket通信实例相关推荐

  1. python安卓开发实例_python服务器与android客户端socket通信实例

    本文实例讲述了python服务器与android客户端socket通信的方法.分享给大家供大家参考.具体实现方法如下: 首先,服务器端使用python完成,下面为python代码: #server.p ...

  2. android安装Mysql服务,android手机可以作为mysql的服务器

    资源连接:https://download.csdn.net/download/vlong5461/10413650点击打开链接 1.解压到android手机的目录,如data/data/mysql ...

  3. android socket通信如何抓取,安卓Socket通信实例(客户端、服务端)

    安卓Socket通信实例 本文摘自:https://whatsblog.icu/index.php/Android/17.html 1.Socket通信必须知道的地方 1.首先,Socket通信采用T ...

  4. 废旧 Android 手机如何改造成 Linux 服务器?

    作者 |   zone7 责编 | 刘静 瞎比比 自从没有了学生身份之后,购买云服务器的价格是越来越贵了,不管是阿里云还是腾讯云.我寻思着能不能找到什么替代品,这让我想起之前在知乎不经意看到的,可以把 ...

  5. 酷!我把废旧的Android手机改造成了Linux服务器

    程序员的成长之路 互联网/程序员/成长/职场 关注 阅读本文大概需要 2.8 分钟. 来源:zone7 作者:zone7 目录 瞎比比 什么都别说,先看看效果怎样? 需要什么材料.设备? root 手 ...

  6. 我把废旧Android手机如何改造成Linux服务器

    目录 瞎比比 什么都别说,先看看效果怎样? 需要什么材料.设备? root 手机 为 Android 手机装上 Linux 系统 最后 瞎比比 自从没有了学生身份之后,购买云服务器的价格是越来越贵了, ...

  7. 废旧Android手机如何改造成Linux服务器

    目录 瞎比比 什么都别说,先看看效果怎样? 需要什么材料.设备? root 手机 为 Android 手机装上 Linux 系统 最后 瞎比比 自从没有了学生身份之后,购买云服务器的价格是越来越贵了, ...

  8. 我把废旧 Android 手机改造成了 Linux 服务器

    ▋目录 瞎比比 什么都别说,先看看效果怎样? 需要什么材料.设备? root 手机 为 Android 手机装上 Linux 系统 最后 ▋瞎比比 自从没有了学生身份之后,购买云服务器的价格是越来越贵 ...

  9. 我把废旧 Android 手机改造成了 Linux 服务器,Android开发学习视频

    需要什么材料.设备? 屏幕还能使用的 Android 手机 APP 软件:Linux deploy.busybox.juice ssh 如果你没有废旧的 Android 手机,但是也想折腾,怎么办?建 ...

最新文章

  1. R语言ggplot2可视化分面图(faceting)、在所有的分面中添加相同的参考基准曲线(overlay a base or reference plot to all facets )
  2. javascript prop和attr的区别
  3. CNN 与 LSTM 模型复杂度分析
  4. Sublime text 简单配置
  5. 你必须知道的session与cookie
  6. s 修饰符:dotAll 模式
  7. jquery 事件,注册 与重复事件处理
  8. 走在WCF学习的路上---印在脑子里的点点滴滴(两种元数据交换方式的优缺点)...
  9. 电商项目的app学习笔记(三)-嵌套路由组件的实现
  10. 用Python自动化爬取CNKI知网数据(批量下载PDF论文)
  11. html音乐播放器收起展开代码,JS模拟酷狗音乐播放器收缩折叠关闭效果代码
  12. 这些书你读过一多半,你就是编程大牛!
  13. 广州大学机器学习与数据挖掘实验一
  14. 服务器设置静态IP地址教程,在Ubuntu服务器18.04上设置静态IP地址
  15. win10找不到便签(便利贴)怎么办,Win10找回便签功能的方法
  16. 读《Ivor Horton's beginning Visual C++ 2010》有感
  17. 授人以渔系列----如何win10安装ffmpeg
  18. Python之signal模块详解
  19. 仿爱乐透android客户端界面实现(附工程源码)
  20. RTL8723BU wifi 及 热点移植和测试

热门文章

  1. linux中流设备_[快速上手Linux设备驱动]之块设备驱动流程详解一
  2. 部署 Job (第二部分)
  3. mysql中删除数据库中的表格数据恢复_恢复从数据库中删除的表
  4. linux删除具有指定内容的文件,Linux bash删除文件中含“指定内容”的行功能示例...
  5. 如何将dmp文件里的某张表导入oracle数据库
  6. Spring 依赖注入(一、注入方式)
  7. cocos2d-x 3.0 事件处理
  8. 【算法14】找出数组中两个只出现一次的数字
  9. LinQ学习之旅(1)
  10. 用C#实现MD5算法