亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java實(shí)現(xiàn)UDP通信過(guò)程實(shí)例分析【服務(wù)器端與客戶端】

瀏覽:97日期:2022-09-02 08:35:58

本文實(shí)例講述了Java實(shí)現(xiàn)UDP通信過(guò)程。分享給大家供大家參考,具體如下:

TCP是一種面向連接的傳輸層協(xié)議,而UDP是傳輸層中面向無(wú)連接的協(xié)議,故傳送的數(shù)據(jù)包不能保證有序和不丟失,實(shí)現(xiàn)UDP通信主要用到了兩個(gè)類:DatagramPacket和DatagramSocket。

DatagramSocket

這個(gè)類用來(lái)表示發(fā)送和接收數(shù)據(jù)包的套接字。

//構(gòu)造方法,創(chuàng)建數(shù)據(jù)報(bào)套接字并將其綁定到本地主機(jī)上的指定端口DatagramSocket socket = new DatagramSocket(0);

DatagramPacket

表示數(shù)據(jù)報(bào)包,用來(lái)實(shí)現(xiàn)無(wú)連接的包的投遞服務(wù)。這些數(shù)據(jù)包選擇不同的路由,經(jīng)過(guò)計(jì)算機(jī)的存儲(chǔ)轉(zhuǎn)發(fā),最終到達(dá)目的計(jì)算機(jī)。所以到達(dá)的數(shù)據(jù)包和發(fā)送時(shí)的順序不一定會(huì)相同。

Java實(shí)現(xiàn)UDP通信過(guò)程實(shí)例分析【服務(wù)器端與客戶端】

Sever端程序

一,調(diào)用DatagramSocket(int port)創(chuàng)建一個(gè)數(shù)據(jù)報(bào)套接字,綁定在指定端口上;二,調(diào)用DatagramPacket(byte[] buf,int length),建立一個(gè)字節(jié)數(shù)組來(lái)接收UDP包;三,調(diào)用DatagramSocket.receive();四,最后關(guān)閉數(shù)據(jù)報(bào)套接字。

Client端程序

一,調(diào)用DatagramSocket()創(chuàng)建一個(gè)數(shù)據(jù)報(bào)套接字;二,調(diào)用DatagramPacket(byte[] buf,int offset,InetAddress address,int port),建立要發(fā)送的UDP包三,調(diào)用DatagramSocket類的send方法發(fā)送數(shù)據(jù)包;四,關(guān)閉數(shù)據(jù)報(bào)套接字。

數(shù)據(jù)報(bào)套接字發(fā)送成功后,相當(dāng)于建立了一個(gè)虛連接,雙方可以發(fā)送數(shù)據(jù)。

實(shí)例

服務(wù)器端:

/* * 服務(wù)器端,實(shí)現(xiàn)基于UDP的用戶登陸 */public class UDPServer { public static void main(String[] args) throws IOException { /* * 接收客戶端發(fā)送的數(shù)據(jù) */ // 1.創(chuàng)建服務(wù)器端DatagramSocket,指定端口 DatagramSocket socket = new DatagramSocket(8800); // 2.創(chuàng)建數(shù)據(jù)報(bào),用于接收客戶端發(fā)送的數(shù)據(jù) byte[] data = new byte[1024];// 創(chuàng)建字節(jié)數(shù)組,指定接收的數(shù)據(jù)包的大小 DatagramPacket packet = new DatagramPacket(data, data.length); // 3.接收客戶端發(fā)送的數(shù)據(jù) System.out.println('****服務(wù)器端已經(jīng)啟動(dòng),等待客戶端發(fā)送數(shù)據(jù)'); socket.receive(packet);// 此方法在接收到數(shù)據(jù)報(bào)之前會(huì)一直阻塞 // 4.讀取數(shù)據(jù) String info = new String(data, 0, packet.getLength()); System.out.println('我是服務(wù)器,客戶端說(shuō):' + info); /* * 向客戶端響應(yīng)數(shù)據(jù) */ // 1.定義客戶端的地址、端口號(hào)、數(shù)據(jù) InetAddress address = packet.getAddress(); int port = packet.getPort(); byte[] data2 = '歡迎您!'.getBytes(); // 2.創(chuàng)建數(shù)據(jù)報(bào),包含響應(yīng)的數(shù)據(jù)信息 DatagramPacket packet2 = new DatagramPacket(data2, data2.length, address, port); // 3.響應(yīng)客戶端 socket.send(packet2); // 4.關(guān)閉資源 socket.close(); }}

客戶端:

/* * 客戶端 */public class UDPClient { public static void main(String[] args) throws IOException { /* * 向服務(wù)器端發(fā)送數(shù)據(jù) */ // 1.定義服務(wù)器的地址、端口號(hào)、數(shù)據(jù) InetAddress address = InetAddress.getByName('localhost'); int port = 8800; byte[] data = '用戶名:admin;密碼:123'.getBytes(); // 2.創(chuàng)建數(shù)據(jù)報(bào),包含發(fā)送的數(shù)據(jù)信息 DatagramPacket packet = new DatagramPacket(data, data.length, address, port); // 3.創(chuàng)建DatagramSocket對(duì)象 DatagramSocket socket = new DatagramSocket(); // 4.向服務(wù)器端發(fā)送數(shù)據(jù)報(bào) socket.send(packet); /* * 接收服務(wù)器端響應(yīng)的數(shù)據(jù) */ // 1.創(chuàng)建數(shù)據(jù)報(bào),用于接收服務(wù)器端響應(yīng)的數(shù)據(jù) byte[] data2 = new byte[1024]; DatagramPacket packet2 = new DatagramPacket(data2, data2.length); // 2.接收服務(wù)器響應(yīng)的數(shù)據(jù) socket.receive(packet2); // 3.讀取數(shù)據(jù) String reply = new String(data2, 0, packet2.getLength()); System.out.println('我是客戶端,服務(wù)器說(shuō):' + reply); // 4.關(guān)閉資源 socket.close(); }}

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java Socket編程技巧總結(jié)》、《Java文件與目錄操作技巧匯總》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》和《Java緩存操作技巧匯總》

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 一级女性全黄久久生活片 | 波多野结衣在线不卡 | 三级免费网站 | 娇小性色xxxxx中文 | 亚洲精品91 | 亚洲字幕波多野结衣作品 | 国产日韩久久 | 欧美一级人与动毛片免费播放 | 国产裸体美女视频全黄 | 国产一区免费在线观看 | 国产精品一区二区在线观看 | 国产成人精品高清不卡在线 | aaa在线观看 | 久久久精品国产 | 高清毛片一区二区三区 | 亚洲精品视频在线 | 久久影院在线 | 久久成人免费大片 | 国产一级大片免费看 | 免费一区二区三区久久 | 日韩三级黄 | 男人在线网址 | 亚洲免费网 | 看毛片的网址 | 男人天堂视频在线 | 亚洲欧美一区二区三区四区 | 国产a级特黄的片子视频免费 | 9久9久女女热精品视频免费观看 | 日韩精品一区二区三区在线观看 | 欧美怡红院免费全视频 | 日本一区二区三区在线 视频观看免费 | 美女亚洲综合 | 国产伦理久久精品久久久久 | 精品外国呦系列在线观看 | 中文乱码一二三四有限公司 | 国产真实乱子伦精品视手机观看 | 中文字幕乱码中文乱码综合 | 中文字幕日韩精品中文区 | 成人在线视频免费 | 国产精品欧美激情在线播放 | 毛片免费观看视频 |