欢迎光临散文网 会员登陆 & 注册

学习记录之Java网络编程

2022-08-18 00:18 作者:星月袭空  | 我要投稿

java网络编程

网络编程从大的方面就是说对信息的发送接收。

通过操作相应API调度计算机资源硬件,并且利用管道(网线)进行数据交互的过程。

更为具体的涉及:网络模型、套接字、数据包

基础层:物理层(physical)、数据链路层(Datalink)、网络层(network).。

传输层(Transport):TCP-UDP协议层、Socket。

高级层::会话层(Session)、表示层(Presentation)、应用层(Application)

Socket与TCP、UDP 

 Socket: 简单来说是ip地址与端口的结合协议(RFC 793).

              一种地址与端口的结合描述协议。

             TCP/IP协议的相关API的总称;是网络API的集合实现.

              涵盖了Stream socket /Datagram Socket 

 socket 的组成与作用:

              在网络传输中用于唯一标识两个端点的链接。

              端点:包括(ip+port)

              4个要素:客户端的地址、客户端的端口、服务器的地址、服务器端口。 

6. Socket的传输原理

Socket之TCP:

         tcp是面向连接的通讯协议。

         通过三次握手建立连接,通讯完成时要拆除连接。

         由于TCP是面向连接的,所以只能用于端到端的通信。

Socket之UDP:

        UDP是面向无连接进行通讯的。

        UDP数据包括目的端口号和源端口号信息。

        由于通讯时是不需要连接,所以可以是实现广播发送,并不局限于端到端。


java.net.Socket

Socket(套接字)封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过 它获取两个流(一个输入一个输出),然后使用这两个流的读写操作完成与服务端的数据交互

java.net.ServerSocket

ServerSocket运行在服务端,作用有两个:

1:向系统申请服务端口,客户端的Socket就是通过这个端口与服务端建立连接的。

2:监听服务端口,一旦一个客户端通过该端口建立连接则会自动创建一个Socket,并通过该Socket与客户端进行数据交互。

7.Client-Server Application

 TCP/IP协议中,两个进程间通信的主要模式为CS模型 

 主要的目的:协调网络中计算机资源、服务模式、进程间数据共享

 常见的FTP、SMTP、HTTP

8.报文段

  报文段是指TCP/IP协议网络传输过程中,起着路由导航作用。

  可以查询各个网络路由网段、IP地址、交换协议等ip数据包。

  报文段充当整个TCP/IP协议数据包的导航路由功能。

  报文在传输过程中会不断的封装成分组、包、帧来传输。

  封装的方式就是添加一些控制信息组成的首部,即报文头。

9.传输协议

   一种约定,约束

   约定大于配置,在网络传输中依然实用;网络的传输是健壮的稳定的,得益于基础的协议构成。

如果我们把Socket比喻为电话,那么ServerSocket相当于是某客服中心的总机。

与服务端建立连接案例:

客户端与服务端完成第一次通讯(发送一行字符串)

Socket提供了两个重要的方法:

OutputStream getOutputStream()

该方法会获取一个字节输出流,通过这个输出流写出的字节数据会通过网络发送给对方。

InputStream getInputStream()

通过该方法获取的字节输入流读取的是远端计算机发送过来的数据。

客户端代码:

服务端代码:

需要注意的几个点:

1:当客户端不再与服务端通讯时,需要调用socket.close()断开链接,此时会发送断开链接的信号给服务端。这时服务端的br.readLine()方法会返回null,表示客户端断开了链接。

2:当客户端链接后不输入信息发送给服务端时,服务端的br.readLine()方法是出于阻塞状态的,直到读取了一行来自客户端发送的字符串。



学习记录之Java网络编程的评论 (共 条)

分享到微博请遵守国家法律