python服务器与android客户端socket通信实例
作者:shichen2014 时间:2022-04-28 02:30:31
本文实例讲述了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程序设计有所帮助。
标签:python,android,socket
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
js换图片效果可进行定时操作
2023-08-23 07:45:34
YUI学习笔记(1)
2009-01-12 18:06:00
[教程]用代码让你了解网页与键盘
2008-06-10 12:18:00
Python qqbot 实现qq机器人的示例代码
2021-05-18 12:43:43
JavaScript数值千分位格式化的两种简单实现方法
2023-08-31 22:59:43
python实现简单的五子棋游戏
2023-07-30 13:24:31
解决Python复杂zip文件的解压问题
2021-08-11 05:04:09
![](https://img.aspxhome.com/file/2023/9/75329_0s.jpg)
像数艺术
2010-02-08 12:33:00
![](https://img.aspxhome.com/file/UploadPic/20102/8/banner-78s.jpg)
十万条Access数据表分页的两个解决方法
2008-05-23 18:24:00
oracle学习笔记(三)
2012-01-05 19:28:42
JS实现淘宝支付宝网站的控制台菜单效果
2023-07-22 22:26:12
![](https://img.aspxhome.com/file/2023/1/55941_0s.png)
python读取json文件并将数据插入到mongodb的方法
2021-03-22 20:30:22
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2023-03-08 19:38:19
一个css与js结合的下拉菜单支持主流浏览器
2023-07-18 01:28:20
![](https://img.aspxhome.com/file/2023/1/55951_0s.gif)
隐藏修改文件时间和文件属性的ASP脚本
2011-03-17 11:15:00
微软建议的ASP性能优化28条守则(1)
2008-02-22 16:54:00
![](https://img.aspxhome.com/file/UploadPic/up/2008032516342961.gif)
asp学习入门基本语法知识
2007-11-07 14:02:00
javascript的正则表达式
2010-07-27 12:29:00
Python中利用xpath解析HTML的方法
2023-10-02 06:55:02
Python中is和==的区别详解
2022-08-22 10:53:09