千锋长沙java培训分享之Socket编程
socket编程一般指的就是网络编程,常见的服务端和客户机都是必不可少的,今天千锋长沙java培训就来给大家介绍一下socket编程中常见的概念问题。
一、常见传输协议
1、tcp协议
TCP (Transmission Control Protocol,传输控制协议):“面向连接 ”,可靠的、基于字节流的运输层(Transport layer)通信协议 。
面向连接服务要经过三个阶段:数据传数前,先建立连接,连接建立后再传输数据,数据传送完后,释放连接。面向连接服务,可确保数据传送的次序和传输的可靠性。
2、udp协议
UDP(User Datagram Protocol ,用户数据包协议):“面向非连接”,在正式通信前不必与对方先建立连接,不管对方状态就直接发送。
无连接服务的特点是:无连接服务只有传输数据阶段。消除了除数据通信外的其它开销。
3、IP协议
IP( Internet Protocol ):计算机网络相互连接进行通信而设计的协议。互联网地址或Internet地址。是用来唯一标识互联网上计算机的逻辑地址。
InetAddress代表了一个网络目标地址对象,封装了主机名和数字类型的地址信息。
InetAddress ia=InetAddress.getLocalHost(); //获得本机IP地址情况
System.out.println(ia.getHostName()); //得到主机名
System.out.println(ia.getHostAddress()); //得到主机地址
InetAddress ia2=InetAddress.getByName("T1"); //通过主机名获得信息
System.out.println(ia2.getHostAddress());
InetAddress ia3=InetAddress.getByAddress(new byte[]{(byte)192,(byte)168,0,86}); //通过主机IP获得信息
System.out.println(ia3.getHostName());
InetAddress ia4=InetAddress.getByName("http://www.163.com"); //根据域名到DNS查询Ip
System.out.println("163 IP:"+ia4.getHostAddress());
二、URL实现网页静态化
类 URL 代表一个统一资源定位符,它是指向互联网“资源”的指针。利用他可以获得网络资源,读取WWW服务器上的数据。
这里我们将读取到的数据转换为流,然后保存到本地(类似网页静态化)。
BufferedReader br=null;FileWriter fw=null;
try {
URL u=new URL("http://mail.163.com/"); //获得网络资源
InputStream fis=u.openStream(); //获得URL的输入数据流
InputStreamReader fr=new InputStreamReader(fis);
br=new BufferedReader(fr); //读取并封装字符流
fw=new FileWriter("D://163.html"); //保存为文件
String s=null;
while((s=br.readLine())!=null){ //操作
System.out.println(s);
fw.write(s);
}
} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally{
try {
br.close();fw.flush();fw.close();} catch (IOException e) {e.printStackTrace();}
}
三、TCP套接字
为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。
Socket可以看作是通信连接两端的收发器。
套接字,Socket是网络上运行的程序之间双向通信链路的端点。
Socket所要完成的通信就是基于连接的通信,建立连接所需的程序分别运行在客户端和服务器端。
套接字连接就是客户端的套接字对象和服务器端的套接字对象通过输入/输出流连接在一起。
2、TCP套接字
在Java中,套接字(通信端点)被抽象为类,我们只需要创建Socket类的对象,就可以使用套接字。
Socket中有输入输出流对象,同时能实现服务器之间的数据传输。
3、Socket部分
通过将这3个参数结合起来,与一个Socket绑定,应用层就可以和传输层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
一个程序(Program B )将一段信息写入Socket中,该Socket将这段信息发送给另外一个Socket(Program A)中,使这段信息能传送到其他程序中。
Socket工作步骤:
a、建立连接
在服务器端通过指定一个用来等待的连接的端口号创建一个 ServerSocket实例.
在客户端通过主机和端口号创建一个 socket实例,连到服务器上.
ServerSocket类的accept方法使服务器处于阻塞状态,等待用户请求
b、数据通信
建立socket连接后,还应该建立输入输出数据流,客户程序可以向Socket写入请求,服务器程序处理请求,并把处理结果通过Socket返回给客户端,完成通过虚拟通道的数据通信;
c、拆除连接
通信结束,将所建立的虚拟连接全部拆除。
猜你喜欢LIKE
最新文章NEW
相关推荐HOT
更多>>热门推荐
零基础必看的前端HTML+CSS教程
沸Java培训新手实战必备!单机版坦克大战分步实现项目源码
热3种Javascript图片预加载的方法详解
热长沙前端培训:一招教你用vue3+canvas实现坦克大战
新互联网凉了?参加长沙Java培训能找到工作吗?
长沙Java培训实战项目,出游咨询订票系统开发流程
不参加长沙Java培训能学会Java吗?2022Java技能学习路线图
千锋长沙Java培训分享之怎么学习Java集合?
千锋长沙前端培训分享之JavaScript面向对象编程思想详解
千锋长沙前端培训分享之web前端的回流和重绘
千锋长沙前端培训分享之3种Javascript图片预加载的方法详解
千锋长沙前端培训分享之利用Jest测试React组件
千锋长沙前端培训分享之JavaScript中Slice的用例
千锋长沙java培训分享之Socket编程