首页 编程 软件学院 查看内容

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

2014-11-13 11:01 1566 1

摘要: 本文实例讲述了python服务器与android客户端socket通信的方法。分享给大家供大家参考。具体实现方法如下:首先,服务器端使用python完成,下面为python代码:复制代码代码如下:#s...
关键词: nbsp import socket 代码 android 服务器 server hostname port java

本文实例讲述了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);      }  }安卓代码中要注意的就是服务器的地址要写对,而且要保证服务器是可以被你的网段访问的。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

返回顶部