计算机之间是如何实现通信的

  • Post author:
  • Post category:其他


如今,计算机网络已经成为我们日常生活的必需品,无论是工作时发送邮件,还是上网聊天,都离不开计算机网络,那么,什么是计算机网络呢?多台计算机之间是如何实现连接并且进行数据交换的呢?这篇文章小编为与你介绍!

计算机网络

所谓的计算机网络简单来说就是指通过某一种方式将多台计算机进行连接并实现计算机彼此之间的

互联和数据交换

在计算机网络中,计算机之间要实现连接和通信,就需要遵守一定的规则,我们把这种

连接和通信

的规则称为

网络通信协议

,它对数据的

传输格式,传输速率和传输步骤

等都做了统一规定,通信双方都必须遵守才能完成数据交换

下面将介绍两种应用广泛的 TCP/IP 协议「包括了 TCP 协议,IP 协议,UDP 协议. ICMP 协议和其他一些协议的协议组」

UDP 通信

UDP 是一种面向无连接的协议,因此在通信时发送端和接受端不用建立连接

接收端:在创建 DatagramSocket 对象时,指定其监听的端口号,然后发送端就可以根据这个端口号来与之通信。简单来说,接收端要做的事情就是DatagramSocket 对象通过 DatagramPacket 这个「包」来接收发送端发送的数据,DatagramPacket 调用方法获得「拆解」接收到的信息并显示给用户

发送端:在创建 DatagramSocket 对象的时候需要指定目标 IP 地址和端口号,而且端口号必须和接收端指定的一致 「暗号」,这样调用 DatagramSocket 的 send 方法时才能将数据发送到对应的接收端

TCP 通信

TCP 和 UDP 一样,都能实现两台计算机之间的通信,两端都需要建立 Socket 对象,区别在于,

UDP 中只有发送端和接收端,不区分客户端和服务端,而 TCP 通信严格区分客户端和服务端

,在通信的时候,必须先由客户端去连接服务端才能实现通信**「进行三次握手」**,服务端不可以主动连接客户端

服务端:在客户端发送数据前,服务端程序会暂时停止运行,accept()方法发生阻塞,直到客户端访问时才会结束这种阻塞状态

客户端:在客户端创建 Socket 对象与服务器建立连接后,通过 Socket 对象获取输入流读取服务器端发来的数据,并打印结果


原作者:企鹅号 – Java资源社区,有所修改