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

本文介绍了一种Python服务器与Android客户端通过Socket进行通信的方法。服务器端采用Python编写,可监听并响应来自Android客户端的消息,并将收到的数据原样返回。Android客户端则实现了连接服务器、发送消息及接收反馈的功能。
摘要由CSDN通过智能技术生成

本文实例讲述了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);      }  }安卓代码中要注意的就是服务器的地址要写对,而且要保证服务器是可以被你的网段访问的。

小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!

免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值