Android网络编程之Socket
2018-03-05 17:47
239 查看
生活像一只蝴蝶,没有破茧的勇气,哪来飞舞的美丽。生活像一只蜂,没有勤劳和努力,怎能尝到花粉的甜蜜,越努力越幸运!
Android开发肯定离不开网络编程,首先说说网络编程的三要素
一、IP地址
网络中host的标识
不易记忆,可用主机名或域名
本地回环地址,localhost:127.0.0.1
二、端口号
用于标识进程的逻辑地址
有效端口号:0-65535
系统保留端口号:0-1024
三、传输协议
通讯的规则
常见协议:HTTP,TCP,UDP,RTP,SMTP
这里主要讲tcp协议下的网络编程,tcp协议是通过三次握手建立连接来通信,所以基本步骤如下
1.创建客户端socket对象,建议对象创建时就明确目的地
2.如果连接建立成功,说明数据通道(socket流)已建立, 可以通过getInputStream或getOutputStream来获取。
3.用输出流将数据写出
服务端代码ServerSocket serverSocket = new ServerSocket(port, 5);
socket = new Socket(serverIp, port);
//获取输出流,向服务端发送消息
PrintWriter pw = new PrintWriter (socket.getOutputStream());
pw.println(msg);
// 读取服务器端数据
InputStream in = socket.g
4000
etInputStream();BufferedReader br = new BufferedReader (new InputStreamReader(in)); String inStr=br.readLine(); br.close();
Android开发肯定离不开网络编程,首先说说网络编程的三要素
一、IP地址
网络中host的标识
不易记忆,可用主机名或域名
本地回环地址,localhost:127.0.0.1
二、端口号
用于标识进程的逻辑地址
有效端口号:0-65535
系统保留端口号:0-1024
三、传输协议
通讯的规则
常见协议:HTTP,TCP,UDP,RTP,SMTP
这里主要讲tcp协议下的网络编程,tcp协议是通过三次握手建立连接来通信,所以基本步骤如下
1.创建客户端socket对象,建议对象创建时就明确目的地
2.如果连接建立成功,说明数据通道(socket流)已建立, 可以通过getInputStream或getOutputStream来获取。
3.用输出流将数据写出
服务端代码ServerSocket serverSocket = new ServerSocket(port, 5);
while (true) { mSocket = serverSocket.accept(); System.out.println("server started... http:/"+ mSocket.getLocalSocketAddress()); synchronized (ServerSocket.class) { ServerThread serverThread = new ServerThread(mSocket); serverThread.start(); } }
try { // 读取客户端数据 由Socket对象得到输入流 InputStream inPut = socket.getInputStream(); if (inPut.available() > 0) { // 读取客户端数据 BufferedReader br =new BufferedReader(new InputStreamReader(inPut)); String inStr = br.readLine(); receiveClientMsg(inStr); // 模拟处理3秒 Thread.sleep(3000); // 向客户端回复信息 if (inStr != null) { mOutPrint = new PrintWriter(socket.getOutputStream()); } // input.close(); } } catch (Exception e) { e.getStackTrace(); overThis(); }
/** * 处理客户端数据 * socket服务端得到返回数据并发送到主界面 * * @param inStr * @return 返回解析的数据 */ public void receiveClientMsg(String inStr) { Message msg = new Message(); msg.obj = inStr; mHandler.sendMessage(msg); }客户端代码//serverIp为服务端IP,port 端口号
socket = new Socket(serverIp, port);
//获取输出流,向服务端发送消息
PrintWriter pw = new PrintWriter (socket.getOutputStream());
pw.println(msg);
// 读取服务器端数据
InputStream in = socket.g
4000
etInputStream();BufferedReader br = new BufferedReader (new InputStreamReader(in)); String inStr=br.readLine(); br.close();
相关文章推荐
- android网络编程 -- Socket 通信(03) 点对点Android聊天室实现(带服务器) [附源码分析]
- Android网络服务开发之Socket编程
- Android网络编程三:Socket
- Android基础学习之Socket、Http、Json网络编程
- android 网络编程--socket tcp/ip udp http之间的关系
- Android网络编程之Socket&Http
- Android网络编程实践之旅(二):基于Socket的网络通信
- android 网络编程--socket tcp/ip udp http之间的关系
- Android网络编程之Socket&Http
- Android基于Socket和Http的网络编程
- Android学习笔记(十一)Android网络编程之Socket&Http
- Android 网络编程 Socket Http
- Android网络编程之Socket&Http
- Android网络编程之Socket通信实现简单聊天室
- Android网络编程实践之旅(二):基于Socket的网络通信 .
- android中的网络通信(一) socket编程
- Android网络编程实践之旅(二):基于Socket的网络通信
- android网络编程_socket(一)
- Android网络编程之Socket
- Android网络编程之Socket&Http