什么是Socket通信

Socket(套接字)是主机中ip和端口结合,通过Socket可以轻松实现不同主机之间应用程序的通信,可以通俗的理解为不同主机中相同软件的的通信桥梁,关于计算机应用的通信模式分为以下两种:

  1. C/S架构:客户端(Client)/服务端(Server)模式

  2. B/S架构:浏览器(Browser)/服务器(Server)模式

基于TCP/IP的Socket通信原理

TCP/IP是一个安全可靠的传输协议,需要保证两个通信端点之间的稳定连接,并且也能保证数据传输的完整性还有顺序,Java中基于TCP/IP编程主要通过以下两个类完成:

  • java.net.ServerSocket 用于表示服务端套接字

  • java.net.Socket 用户表示客户端套接字

 基础复习十五、网络编程(2)

 

基于UDP协议的Socket通信

UDP(User Datagram Protocol),用户数据报协议,不是一个基于稳定连接的协议,使用UDP协议通信不需要通信的两个端点间建立连接,通信的端点既可以作为发送端也可以作为接收端;与TCP 协议之间的不同在于, UDP 不是一种基于稳定连接的通讯协议。UDP 协议将独立的数据包从一台计算机传 输到另外一台计算机,但是并不保证接受方能够接收到该数据包,也不保证接收方 所接收到的数据和发送方所发送的数据在内容和顺序上是完全一致的。因此,UDP 协议更类似于快递的邮寄,快递的投递不能够保证能够被接收方及时收到,后发出的包裹也许会比先发出的包裹更早到达。

Java中也提供了两个用于实现UDP通信的核心类:

  1. java.net.DatagramPacket

  2. java.net.DatagramSocket

基础复习十五、网络编程(2) 日常应用中有许多的网络软件都是基于UDP协议实现,比如:极域电子教室,飞秋等,这里我们还可以基于UDP以及飞秋的协议实现一个能跟飞秋通信的应用

UDP数据广播与MulticastSocket

​ 在通用的以太网(Ethernet)构架下,计算机于计算机之间的数据交换都是通过交换机来完成的。如果一份数据需要被传送给多个接收者,在使用TCP/IP连接的情况下,数据发送者需要向交换机发送N 个同样的拷贝,而交换机则负责将这N 个拷 贝分发给所有的接收者。

​ 在使用UDP 数据广播的情况下,数据发送者只需要向交换机发送一个拷贝,交换机负责将这个信息制作N 个拷贝发送给所有的机器。在这种情况下,使用TCP/IP连接会大大的增加网络的负担。在一个普通局域网络中,可以认为由于网络状况较差而造成数据丢失的可能性比较小,而利用UDP 数据广播进行 数据交换能够大幅度减轻网络的负担

 

UDP数据广播的实现是通过java.net包中的MulticastSocket类实现,该类是DatagramSocket的子类,通过该类可以实现组播(广播)数据报的发送与接收。组播地址的使用一般为D类ip地址,D类地址一般为:224.0.0.0至239.255.255.255(包含)之间。

相关文章:

  • 2022-01-07
  • 2022-01-16
  • 2022-12-23
  • 2021-08-22
  • 2021-04-20
  • 2021-04-16
  • 2021-11-08
  • 2021-11-14
猜你喜欢
  • 2021-10-14
  • 2021-12-27
  • 2021-11-18
  • 2022-12-23
  • 2021-08-26
  • 2021-07-12
  • 2021-09-16
相关资源
相似解决方案