亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

Java編程使用UDP建立群聊系統代碼實例

2024-07-13 10:16:00
字體:
來源:轉載
供稿:網友

相關javascript/256335.html">java/259751.html">java/146977.html">java類介紹

DatagramSocket

public class DatagramSocket extends Object

此類表示用來發送和接收數據報包的套接字。

數據報套接字是包投遞服務的發送或接收點。每個在數據報套接字上發送或接收的包都是單獨編址和路由的。從一臺機器發送到另一臺機器的多個包可能選擇不同的路由,也可能按不同的順序到達。

在DatagramSocket上總是啟用UDP廣播發送。為了接收廣播包,應該將DatagramSocket綁定到通配符地址,在某些實現中,將DatagramSocket綁定到一個更加具體的地址時廣播包也可以被接收.

可以通過DatagramSocket的send和receive來發送和接收數據.

public void receive(DatagramPacket p) throws IOException

從此套接字接收數據報包。當此方法返回時,DatagramPacket的緩沖區填充了接收的數據。數據報包也包含發送方的IP地址和發送方機器上的端口號。

此方法在接收到數據報前一直阻塞,數據報包對象的length字段包含所接收信息的長度。如果信息比包的長度長,該信息將被截短

如果存在安全管理器,而安全管理器的checkAccept方法不允許接收操作,則包不能被接收。

參數:

p-要放置傳入數據的DatagramPacket。

拋出:

IOException-如果發生I/O錯誤。

SocketTimeoutException-如果先前調用了setSoTimeout且超時值已過。

PortUnreachableException-套接字連接到當前不可達的目標時可能拋出。注意,不能保證一定拋出該異常。

IllegalBlockingModeException-如果此套接字具有相關聯的通道,且通道處于非阻塞模式。

public void send(DatagramPacket p) throws IOException

從此套接字發送數據報包。DatagramPacket包含的信息指示:將要發送的數據、其長度、遠程主機的IP地址和遠程主機的端口號

如果存在安全管理器,且套接字當前沒有連接到遠程地址,則此方法首先執行某些安全性檢查。首先,如果p.getAddress().isMulticastAddress()為true,則此方法以p.getAddress()作為參數調用安全管理器的checkMulticast方法。如果該表達式的值為false,此方法改為調用安全管理器的以p.getAddress().getHostAddress()和p.getPort()為參數的checkConnect方法。如果不允許該操作,則每次調用安全管理器方法都會導致SecurityException。

參數:

p-將要發送的DatagramPacket。

拋出:

IOException-如果發生I/O錯誤。

SecurityException-如果安全管理器存在并且其checkMulticast或checkConnect方法不允許進行發送。

PortUnreachableException-套接字連接到當前不可達的目標時可能拋出。注意,不能保證一定拋出該異常。

IllegalBlockingModeException-如果此套接字具有相關聯的通道,且通道處于非阻塞模式。

DatagramPacket

public final class DatagramPacket extends Object

此類表示UDP數據報包,數據報包用來實現無連接包投遞服務

構造方法:

DatagramPacket(byte[]buf,intlength)

構造DatagramPacket,用來接收長度為length的數據包

DatagramPacket(byte[]buf,intlength,InetAddressaddress,intport)

構造數據報包,用來將長度為length的包發送到指定主機上的指定端口號

UDP群聊系統的示例

UDP是面向無連接的,群聊就是向廣播地址(broadcastingaddress)發送數據,這樣每個人都會收到消息;采用線程的方式,啟動一個發送方線程和接收方線程,發送方讀取鍵盤輸入作為輸出,接收方讀到輸入的信息并顯示

發送方

UdpSender.java

package cn.xidian.socket;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class UdpSender extends Thread{	@Override	  public void run() {		try {			//建立UDP的服務			DatagramSocket socket = new DatagramSocket();			//準備數據包發送			//從系統輸入讀取輸入			BufferedReader in = new BufferedReader(new InputStreamReader(System.in)) ;			String line = null;			while((line = in.readLine()) != null){				//我做測試,寫的是本機地址,群聊需要寫廣播地址,比如:192.168.137.255				DatagramPacket data = new DatagramPacket(line.getBytes(), line.getBytes().length, InetAddress.getByName("127.0.0.1"), 9090);				//發送數據				socket.send(data);			}			//關閉socket			socket.close();		}		catch (IOException e) {			e.printStackTrace();		}	}}

接收方

UdpReceiver.java

package cn.xidian.socket;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;public class UdpReceiver extends Thread {	@Override	  public void run() {		try {			//建立UDP的服務,監聽端口			DatagramSocket socket = new DatagramSocket(9090);			//接受數據包			byte[] temp = new byte[1024];			DatagramPacket data = new DatagramPacket(temp, temp.length);			Boolean flag = true;			while(flag){				socket.receive(data);				//輸出發送方的相關信息				String senderAddress = data.getAddress().getHostAddress();				String senderHostName = data.getAddress().getHostName();				System.out.println(senderHostName+"("+senderAddress+")"+" say: " + new String(temp, 0,data.getLength()));			}			//關閉資源			socket.close();		}		catch (IOException e) {			e.printStackTrace();		}	}}

Main方法

UdpMain.java

package cn.xidian.socket;public class UdpMain {	public static void main(String[] args) {		//啟動UdpReceiver線程		UdpReceiver receiver = new UdpReceiver();		receiver.start();		//啟動UdpSender線程		UdpSender sender = new UdpSender();		sender.start();	}}

測試結果

java,udp,編程實例,實例,編程,代碼,javaudp網絡編程

輸入方讀取鍵盤輸入作為輸出,接收方接收消息并顯示發送方的ip和主機名

總結

以上就是本文關于Java編程使用UDP建立群聊系統代碼實例的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电视剧在线观看免费网站| 91在线观看免费高清| 57pao国产成人免费| 久久精品福利视频| 日韩精品视频在线观看网址| 亚洲国产成人精品一区二区| 欧美成人免费观看| 欧美激情精品久久久久久免费印度| 国产精品成人av在线| 久久久久久中文字幕| 国产成人精品免高潮在线观看| 国产精品视频网址| 久久久久久久久久久久av| 欧美国产日韩一区二区三区| 久久韩剧网电视剧| 久久久av网站| 91sao在线观看国产| 在线观看日韩专区| 日韩电影大全免费观看2023年上| 国产欧美中文字幕| 亚洲欧美在线免费| 欧美激情亚洲国产| 久久精品国产亚洲精品| 九九精品在线视频| 国产视频精品久久久| 国产精品精品视频一区二区三区| 91久久久久久国产精品| 欧美做受高潮1| 久久免费国产视频| 久久精品久久久久电影| 久久精品国产一区二区电影| 91精品国产91久久久久久吃药| 日韩av中文在线| 国产精品欧美一区二区三区奶水| 亚洲第一精品福利| 亚洲精品国产精品久久清纯直播| 亚洲国语精品自产拍在线观看| 久久久久久久久久久久久久久久久久av| 日韩经典中文字幕| 自拍偷拍亚洲一区| 日韩在线视频线视频免费网站| 欧美孕妇毛茸茸xxxx| 伊人亚洲福利一区二区三区| 精品久久久香蕉免费精品视频| 亚洲中国色老太| 久久国产加勒比精品无码| 日本亚洲精品在线观看| 亚洲跨种族黑人xxx| 亚洲免费av网址| 日韩精品999| 欧美高清videos高潮hd| 国产欧美日韩中文字幕在线| 夜夜躁日日躁狠狠久久88av| www.久久久久久.com| 欧美另类99xxxxx| 亚洲成人免费网站| 久久精视频免费在线久久完整在线看| 中文字幕9999| 国产精品视频久久| 国产精品美女久久久免费| 久久99视频免费| 青青久久aⅴ北条麻妃| 亚洲精品短视频| 91久久精品久久国产性色也91| 国产精品专区h在线观看| 欧洲一区二区视频| 亚洲欧洲成视频免费观看| 久久久久亚洲精品成人网小说| 精品国产一区二区在线| 亚洲三级av在线| 亚洲人午夜精品免费| 亚洲综合国产精品| 日韩欧美亚洲综合| 国产精品久久久999| 欧美午夜影院在线视频| 久久国内精品一国内精品| 日韩精品福利在线| 久久99久国产精品黄毛片入口| 日韩视频免费在线| 亚洲精品一区av在线播放| 欧美日韩亚洲91| 亚洲性夜色噜噜噜7777| 一区二区欧美久久| 青青在线视频一区二区三区| 2019中文字幕全在线观看| 欧美日韩在线免费| 国产成人精品a视频一区www| 97在线观看免费| 亚洲国产成人精品电影| 777午夜精品福利在线观看| 欧美视频在线观看免费网址| 久久久久久久999精品视频| 成人在线中文字幕| 国产精品久久久久不卡| 日日噜噜噜夜夜爽亚洲精品| 欧美理论电影在线观看| 91精品久久久久久久久久久久久| 国产精品自在线| 欧美一级电影免费在线观看| 国产精品久久久久一区二区| 久久亚洲影音av资源网| 日韩精品视频中文在线观看| 国产视频久久久久| 欧美日产国产成人免费图片| 久久久中精品2020中文| 国内精品一区二区三区| 91精品视频大全| 国内精品久久久久| 97在线视频免费| www高清在线视频日韩欧美| 国产精品99免视看9| 国产成人97精品免费看片| 国产欧美在线观看| 91av在线精品| 欧美视频免费在线| 91精品中文在线| 日韩中文字幕视频在线观看| 狠狠色香婷婷久久亚洲精品| 日韩亚洲精品电影| 久久精品久久久久电影| 81精品国产乱码久久久久久| 国内精品久久久久伊人av| 欧美成人激情图片网| 一二美女精品欧洲| 久久人人爽人人| 国产一区二区三区高清在线观看| 国产精品日韩欧美| 久久精品视频在线播放| 97精品视频在线播放| 亚洲第一av网站| 久久视频在线观看免费| 欧美一区二粉嫩精品国产一线天| 亚洲片国产一区一级在线观看| 成人av资源在线播放| 亚洲国产日韩一区| 久久中国妇女中文字幕| 国产一区二区三区在线观看网站| 国产精品旅馆在线| 中文在线资源观看视频网站免费不卡| 久久久久久久久91| 最近2019中文字幕大全第二页| 国产精品99久久久久久久久久久久| 国产成人精品久久| 亚洲免费视频观看| 久久中文字幕一区| 国产精品极品尤物在线观看| 久国内精品在线| 亚洲欧美变态国产另类| 狠狠躁18三区二区一区| 欧美成人免费全部观看天天性色| 日韩中文字幕免费| 久久久久久久久久久网站| 成人xvideos免费视频| 久久成人人人人精品欧| 欧美成人午夜免费视在线看片| 国产精品入口免费视频一| 亚洲精品日韩久久久| 中文字幕日韩精品在线观看| 成人一区二区电影| 日韩最新av在线| 欧美亚洲在线播放| 欧美成人精品一区二区| 成人精品一区二区三区电影免费| 亚洲精品一区二区三区不|