计算机之间是如何实现通信的?—Vecloud微云
如今,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)成為我們?nèi)粘I畹谋匦杵?#xff0c;無(wú)論是工作時(shí)發(fā)送郵件,還是上網(wǎng)聊天,都離不開(kāi)計(jì)算機(jī)網(wǎng)絡(luò),那么,什么是計(jì)算機(jī)網(wǎng)絡(luò)呢?多臺(tái)計(jì)算機(jī)之間是如何實(shí)現(xiàn)連接并且進(jìn)行數(shù)據(jù)交換的呢?
計(jì)算機(jī)網(wǎng)
所謂的計(jì)算機(jī)網(wǎng)絡(luò)簡(jiǎn)單來(lái)說(shuō)就是指通過(guò)某一種方式將多臺(tái)計(jì)算機(jī)進(jìn)行連接并實(shí)現(xiàn)計(jì)算機(jī)彼此之間的互聯(lián)和數(shù)據(jù)交換。
在計(jì)算機(jī)網(wǎng)絡(luò)中,計(jì)算機(jī)之間要實(shí)現(xiàn)連接和通信,就需要遵守一定的規(guī)則,我們把這種連接和通信的規(guī)則稱為網(wǎng)絡(luò)通信協(xié)議,它對(duì)數(shù)據(jù)的傳輸格式,傳輸速率和傳輸步驟等都做了統(tǒng)一規(guī)定,通信雙方都必須遵守才能完成數(shù)據(jù)交換。
UDP 通信
UDP 是一種面向無(wú)連接的協(xié)議,因此在通信時(shí)發(fā)送端和接受端不用建立連接。
1.接收端:在創(chuàng)建 DatagramSocket 對(duì)象時(shí),指定其監(jiān)聽(tīng)的端口號(hào),然后發(fā)送端就可以根據(jù)這個(gè)端口號(hào)來(lái)與之通信。簡(jiǎn)單來(lái)說(shuō),接收端要做的事情就
DatagramSocket 對(duì)象通過(guò) DatagramPacket 這個(gè)「包」來(lái)接收發(fā)送端發(fā)送的數(shù)據(jù),DatagramPacket
調(diào)用方法獲得「拆解」接收到的信息并顯示給用戶!代碼如下:
2.發(fā)送端:在創(chuàng)建 DatagramSocket 對(duì)象的時(shí)候需要指定目標(biāo) IP 地址和端i口號(hào),而且端口號(hào)必須和接收端指定的一致 「暗號(hào)」,這樣調(diào)用
DatagramSocket 的 send 方法時(shí)才能將數(shù)據(jù)發(fā)送到對(duì)應(yīng)的接收端,主要代碼如下:
TCP 通信
TCP 和 UDP 一樣,都能實(shí)現(xiàn)兩臺(tái)計(jì)算機(jī)之間的通信,兩端都需要建立 Socket 對(duì)象,區(qū)別在于,UDP
中只有發(fā)送端和接收端,不區(qū)分客戶端和服務(wù)端,而 TCP
通信嚴(yán)格區(qū)分客戶端和服務(wù)端,在通信的時(shí)候,必須先由客戶端去連接服務(wù)端才能實(shí)現(xiàn)通信「進(jìn)行三次握手」,服務(wù)端不可以主動(dòng)連接客戶端。
1.服務(wù)端:在客戶端發(fā)送數(shù)據(jù)前,服務(wù)端程序會(huì)暫時(shí)停止運(yùn)行,accept()方法發(fā)生阻塞,直到客戶端訪問(wèn)時(shí)才會(huì)結(jié)束這種阻塞狀態(tài)。代碼如下:
2. 客戶端:在客戶端創(chuàng)建 Socket 對(duì)象與服務(wù)器建立連接后,通過(guò) Socket 對(duì)象獲取輸入流讀取服務(wù)器端發(fā)來(lái)的數(shù)據(jù),并打印結(jié)果。代碼如下:
總結(jié)
以上是生活随笔為你收集整理的计算机之间是如何实现通信的?—Vecloud微云的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 杜梨树长了40年周长1米1价格是多少
- 下一篇: 解答MPLS基础的路由问题—Veclou