Android学习笔记--Scoket编程

简介:
MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

1 . 什么是Socket

Socket英文意为"插座"

所谓Scoket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄

应用程序通常通过"套接字"向网络发出请求或者应答网络请求

2 . Socket基本通信模型


Android学习笔记--Scoket编程 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝


3 . 使用基于TCP协议的Socket


Android学习笔记--Scoket编程 - 無牽℡↘嘸褂 - 菁华隐没℡↘芳流歇绝


ServerSocketActivity代码 例 :   1 . 声明控件对象(略)
2 . 获得控件对象(略)
3 . 绑定事件(略)
4 . 创建监听器对象
Public void onClick(View v) {
New ServerThread().start();
}

// TCPserver
Class ServerThread extends Thread {
Public void run () {
// 声明一个serverSocket对象
ServerSocket serverSocket = null;
Try {
// 创建serverSocket对象并在4567端口监听
serverSocket = new ServerSocket(4567);
// 调用serverSocket的accept方法,接受客户端所发送的请求
Socket socket = serverSocket.accept(); // 阻塞函数
// 从socket当中得到inputstream对象
InputStream inputStream = socket.getInputStream();
Byte buffer [] new bute [1024 * 4];
Int temp = 0 ;
// 从inputStream当中读取客户端所发送的数据
While ((temp = inputStream.read(buffer))  !=  -1) {
System.out,println(new String(buffer , 0 ,temp));
}
} catch (Execption e) {
e.printStackTrace();
} finally {
Try {
serverSocket.close();
} catch (IOExecption e) {
e.printStackTrace();
}
}
}
}

TCPClient 代码 例 :
Public static void main (String [] args) {
Try {
// 创建一个Socket对象,指定服务器端的ip地址和端口号
Socket socket = new Socket("192.168.1.1" , 4567);
// 使用InputStream读取硬盘上的文件
InputStream inputStream = new FileInputStream("F://file/words.txt");
// 从Socket上得到outputStream
outputStream outputStream = socket.getOutputStream();
Byte buffer [] = new byte[4*1024];
Int temp = 0;
// 将inputStream的数据取出并写入到outputStream
While ((temp = inputStream.read(buffer)) != -1) {
outputStream.write(buffer , 0 ,temp);
}
outpurStream.flush();
} catch (Execption e) {
e.printStackTrace();
}
}


// UDPServer
Class ServerThread extends Thread {
Public void run () {
Try {
// 创建一个DatagramSocket 对象,并制定监听端口号
DatagramSocket socket = new DatagramSocket(4567);
Byte data [] = new byte [1024];
// 创建一个空的DatagramPacket对象
DatagramPacket packet = new DatagramPacket (data , data.length);
// 使用receive方法接受客户端所发送的数据
Socket.receive(packet); // 阻塞方法
String result = new String(packet.getData() , packet.getOffset() , packet.getLength()); // 设置数据偏移量 , 得到该次数据的长度
System.out.println("result-->" + result);
} catch (Execption e) {
e.printStackTrace();
}
}
}

// UDPClient
Public static void main (String [] args) {
Try {
// 创建一个DatagramSocket 对象,并制定监听端口号

DatagramSocket socket = new DatagramSocket(456




7);

InetAddress serverAddress = InetAddress.getByName("192.168.1.1");
String str = "hello";
Byte data [] = str.getBytes();
DatagramPacket packet = new DatagramPacket(data , data.length , serverAddress , 4567);
Socket.send(packet);
} catch (Execption e) {
e.printStackTrace();
}
}

4 . 使用基于UDP协议的Socket




     本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360562,如需转载请自行联系原作者




相关文章
|
7月前
|
Java 调度 Android开发
构建高效Android应用:探究Kotlin多线程编程
【2月更文挑战第17天】 在现代移动开发领域,性能优化一直是开发者关注的焦点。特别是在Android平台上,合理利用多线程技术可以显著提升应用程序的响应性和用户体验。本文将深入探讨使用Kotlin进行Android多线程编程的策略与实践,旨在为开发者提供系统化的解决方案和性能提升技巧。我们将从基础概念入手,逐步介绍高级特性,并通过实际案例分析如何有效利用Kotlin协程、线程池以及异步任务处理机制来构建一个更加高效的Android应用。
|
7月前
|
Ubuntu 网络协议 Java
【Android平板编程】远程Ubuntu服务器code-server编程写代码
【Android平板编程】远程Ubuntu服务器code-server编程写代码
|
7月前
|
存储 Java Android开发
OpenCV3 安卓应用编程:1~6 全
OpenCV3 安卓应用编程:1~6 全
50 0
|
7月前
|
存储 算法 开发工具
OpenCV 安卓编程示例:1~6 全
OpenCV 安卓编程示例:1~6 全
155 0
|
7月前
|
Java 调度 数据库
Android 性能优化: 如何进行多线程编程以提高应用性能?
Android 性能优化: 如何进行多线程编程以提高应用性能?
113 0
|
5月前
|
移动开发 开发工具 Android开发
探索安卓与iOS开发的差异:平台特性与编程实践
【7月更文挑战第8天】在移动开发的广阔天地中,安卓和iOS这两大操作系统各自占据着半壁江山。它们在用户界面设计、系统架构及开发工具上展现出截然不同的特色。本文将深入探讨这两个平台在技术实现和开发生态上的关键差异,并分享一些实用的开发技巧,旨在为跨平台开发者提供有价值的见解和建议。
|
6月前
|
安全 IDE Android开发
探索Android与iOS开发的差异:平台特性与编程实践
【6月更文挑战第17天】在移动应用开发的广阔天地中,Android和iOS两大平台各自占据半壁江山。它们在用户群体、系统架构以及开发环境上的差异,为开发者带来了不同的挑战和机遇。本文深入探讨了这两个平台在技术实现、界面设计、性能优化等方面的主要区别,并提供了实用的开发建议,旨在帮助开发者更好地理解各自平台的特性,从而创造出更加优秀的移动应用。
|
7月前
|
架构师 网络协议 算法
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
Android高级架构师整理面试经历发现?(大厂面经+学习笔记(1)
|
7月前
|
Java Android开发 Dart
50家大厂面试万字精华总结android编程基础学习
50家大厂面试万字精华总结android编程基础学习
|
7月前
|
消息中间件 缓存 架构师
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍
2024年阿里Android高级面试题分享,附学习笔记+面试整理+进阶书籍