python服务器与android客户端socket通信实例
发布时间:2020-12-16 20:17:43 所属栏目:Python 来源:网络整理
导读:本篇章节讲解python服务器与android客户端socket通信的方法。供大家参考研究。具体实现方法如下: 首先,服务器端使用python完成,下面为python代码: 复制代码 代码如下: #server.py import socket def getipaddrs(hostname):#只是为了显示IP,仅仅
本篇章节讲解python服务器与android客户端socket通信的方法。分享给大家供大家参考。具体实现方法如下: 首先,服务器端使用python完成,下面为python代码: 复制代码 代码如下: #server.py
import socket def getipaddrs(hostname):#只是为了显示IP,仅仅测试一下 result = socket.getaddrinfo(hostname,None,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程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |