Android下Socket简单通信+Python服务器
这是第一次接触到android相关知识,也是第一篇原创文章,就写一个简单的,为什么要来写这个呢?起初都是用一些小字条记录一些感受一些重要的的语句,我平时的编程呢,遇到错误都是来网上找相关的资料,学习新的东西也是去网上看各位大佬的观点,受益匪浅吧。
话不多说,打个样下面就是介绍一下这个文章要实现的功能吧。
1、编写一个编写一个活动页面,要求可以连接到一个tcp服务端,并通过UI编写要向对方发送的文本, 用户可用按钮控制内容的发送,服务端能成功显示明文。(要是要加密的话,就可以在此基础上自行添加加密方法)
Socket是一种网络通讯接口,通信两端通过它来发送和接收数据。
Socket的主要特点:使用简单且可移植。
Socket有两种传输模式:面向连接和无连接:
1、面向连接模式使用TCP协议,在通信两端建立通信链路,用数据流的方式发送和接收数据。
2、无连接模式使用UDP协议,用数据报文形式发送数据。
端口: 两种传输模式都会用到端口,是用来区分不同的连接的一个标识。
是一种面向连接的、可靠的、基于字节流的运输层(Transport layer)通信协议。
这里就不多说tcp的信息了。
基于TCP的Socket通信步骤
1、TCP服务器端的步骤:
(1)、创建服务器socket:
ServerSocket(int port)
ServerSocket(int port,in backlog)
ServerSocket(int port,int backlog,InetAddress localAddr)
ServerSocket serversock= new ServerSocket(12345);//12345为端口号
//serversock调用accept()方法接收客户端请求,如果获取了请求,返回和该客户端通信的socket;
clientsock=serversock.accept();
//获取和客户端传输的输出流和输入流:
OutputStream ostream = sock.getOutputStream();
InputStream istream = sock.getInputStream();
//进行数据传输:
ostream.write…
Istream.read
(2)、TCP客户端的步骤:
//连接服务器:
Socket sock = new Socket(“192.168.1.3”,10001);
//获取和服务器传输的输出流和输入流:
InputStream istream = sock.getInputStream();
OutputStream ostream = sock.getOutputStream();
//进行数据传输:
ostream.write…
Istream.read
先去编写界面:
//这是activity_main.xml界面
界面图片:
现在需要自己搭建一个Python环境,官网安装一个就好,出现下面的界面就ok了
服务器的Python代码也很简单,获取本地主机,设置好端口就完成:
#coding=utf-8
import socket # 导入 socket 模块
s = socket.socket() # 创建 socket 对象
host = socket.gethostname() # 获取本地主机名
port = 12345 # 设置端口
s.bind((host, port)) # 绑定端口
chunks = []
s.listen(5) # 等待客户端连接
while True:
con,addr=s.accept()
print ('a client connected!',addr)
while True:
chunks = con.recv(1024)
if len(chunks) == 0:
break
print (repr(chunks))
con.close()
到此为止,整项目就简单完成了,现在来跑一下,看一下效果
这样就成功了。
作者:XXL_sansui
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341