源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-05-07 23:12 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python服务器与android客户端socket通信实例
本文实例讲述了python服务器与android客户端socket通信的方法。分享给大家供大家参考。具体实现方法如下: 首先,服务器端使用python完成,下面为python代码:
[u]复制代码[/u] 代码如下:
#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代码:
[u]复制代码[/u] 代码如下:
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程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部