Socket编程
www.mars-droid.com
1 什么是Socket
Android使用的是Java的Socket模型
Socket原意插座 通常称作“套接字” 用于描述IP地址和端口,是一个通信链的句柄
应用程序通过“套接字”向网络发出请求火应答网络请求
2 Socket基本通信模型
客户端(Socket) 输出流 OutputStream ---> 服务端(ServerSocket) 输出流 InputStream
服务端(ServerSocket) 输出流 OutputStream ---> 客户端(Socket) 输入流 InputStream
3 使用基于TCP协议的Socket
*ServerThread extends Thread的run方法 服务器端代码
声明一个ServerSocket对象 监听指定端口
ServerSocket serverSocket=new ServerSocket(端口);
调用serverSocket的accept方法,接受客户端所发送的请求
Socket socket=serverSocket.accept();//返回一个socket 代表一个连接
从socket中得到InputStream对象
InputStream inputStream=socket.getInputStream();
byte buffer[]=new byte[1024*4];
int temp=0;
从InputStream读取数据
while((temp=inputStream.read(buffer))!=-1){
Syestem.out.println(new String(buffer,0,temp));
}
*客户端代码
创建一个Socket对象,指定服务器端IP地址和端口
Socket socket=new Socket("ip地址",端口);
使用InputStream读取一个文件
InputStream inputStream=new FileInputStream("文件路径");
从Socket中得到一个OutputStream
OutputStream outputStream=socket.getOutputStream();
byte buffer[]= new byte[1024*4];
int temp=0;
将InputStream中读出,并写入到OutputStream中
while((temp=inputStream.read(buffer))!=-1){
outputStream.write(buffer,0,temp);
}
outputStream.flush();
4 使用基于UDP协议的Socket
*服务器端代码
创建一个DatagramSocket对象,指定端口号
DatagramSocket socket=new DatagramSocket(端口);
byte data[]=new byte[1024];
创建一个空的DatagramPacket对象 用于接受数据
DatagramPacket packet=new DatagramPacket(data,data.length);
使用receive方法接受客户端发送的数据(有些类似于accept 也是阻塞的)
socket.receive(packet);
System.out.println(new String(packet.getData(),packet.getOffset(),packet.getLength()));
*客户端代码
创建一个DatagramSocket对象
DatagramSocket socket=new DatagramSocket(端口);
创建一个InetAddress 代表网络中的一个地址
InetAddress serverAddress=InetAddress.getByName("IP");
String str="hello";
byte data[]=str.getBytes();
创建DatagramPacket对象 指定发送的地址和端口号
DatagramPacket packet=new DatagramPacket(data,data.length,serverAddress,端口);
调用socket对象的send方法,发送数据
socket.send(packet);
分享到:
相关推荐
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 socket 套接字(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
Mars(战神)——资产发现、子域名枚举、C段扫描、资产变更监测、端口变更监测、域名解析变更监测、Awvs扫描、POC检测、web指纹探测、端口指纹探测、CDN探测、操作系统指纹探测、泛解析探测、WAF探测、敏感信息检测...
这里是个人在看mars的contentprovider中的做记录的一些笔记,因为这章没有源码,所以做了点笔记下来仔细看看,不需要的同志不需要下哦
mars视频教程是初学android者首选的经典网上教程,mars老师语言幽默风趣、逻辑条理清晰,可以让初学者对android有个很好的入门学习,该资源是网上mars视频教程的全部源代码,初学者可以结合网上教程和源代码进行学习...
《mars老师android视频第一季到第五季源码及视频合集》是一份全面且深入的Android开发学习资源,由知名讲师mars老师倾力打造。这个合集包含了从基础到高级的Android开发教学视频以及配套的源码,是Android开发者提升...
mars老师android视频学习笔记,mars老师讲解细致,这套笔记记得非常全面
《Mars老师视频源代码详解——深入Android编程实践》 Mars老师的视频源代码是一份宝贵的教育资源,专注于Android平台的开发。这份源代码是Mars老师在教学过程中使用的实例,旨在帮助学习者深入理解Android应用的...
【标题】"mars老师视频源码"所涉及的知识点主要围绕着编程教学、软件开发以及可能涵盖的编程语言和技术栈。Mars老师作为一位知名的IT教育专家,他的视频源码通常会包含一系列与编程相关的实践项目,旨在帮助学生或...
【火星(Mars)视频教程源码全集】是一份专为学习者设计的资源,旨在帮助他们深入了解和掌握Android应用开发的相关技能。这个压缩包包含了一系列与Android应用开发相关的项目源码,覆盖了多个关键知识点,对于想要...
在本资源包“Android开发mars视频教学第二季+源码和ppt.rar”中,您将获得深入学习Android应用开发的宝贵材料,特别是针对Mars框架的使用。这个压缩包包含了视频教程、源代码以及相关的PPT,旨在帮助开发者提升...
本笔记集合了"Mars Android视频教程"的主要知识点,旨在帮助学习者回顾和巩固课程中的核心概念。以下是根据文件名整理出的各章节内容详解: 1. **Animations.doc** - 动画是Android应用中提升用户体验的关键元素。...
【标题】"mars android视频源码"涉及到的知识点主要集中在Android开发领域,特别是与Mars相关的部分,这可能是一个开源项目或教学资源。Mars通常指的是火星,但在编程语境中,它可能是一个专用于Android开发的框架...
【标题】"mars老师视频源码下载(33集全)"所涵盖的知识点主要集中在Android开发领域,由知名讲师mars提供。这个资源是针对初学者的,旨在帮助他们理解和学习Android应用程序开发的基础和进阶技巧。源码是学习过程中...
根据提供的文件信息,这里主要涉及的是关于“Mars Android视频教程”的相关内容。下面将围绕这一主题,详细展开介绍与Android开发相关的知识点。 ### Mars Android视频教程概览 #### 一、教程简介 “Mars Android...
本次我们关注的是一个名为“火星车”(Mars Car)的问题,这是一道经典的编程题,旨在考察开发者对于逻辑控制、坐标系统理解以及问题解决能力。该题目源自“mars_car_problem.rar”压缩包文件,内部包含了一个用Ruby...
通过研究和学习Mars老师的视频源代码,开发者可以深入了解视频处理的底层原理,提升自己的编程技能,并可能在此基础上构建出更多功能丰富的视频应用。同时,开源项目也鼓励社区参与,共同改进和完善代码库。
《火星(mars)视频代码大全》是一份珍贵的编程学习资源,主要涵盖了火星视频第一季和第二季中的各种代码示例。这套代码集合是作者精心搜集和整理的成果,旨在帮助程序员快速提升代码编写能力,深入理解编程概念和技术...
整个Mars数据的大小大概有6.3G,有两个名称为bbox_train和 bbox_test的文件夹。 同时你还应该下载一个关于数据集信息的info文件夹。info文件夹不包括在原始数据集中,下载地址为...