java使用UDP實現(xiàn)多人聊天功能
使用UDP實現(xiàn)簡單聊天功能,供大家參考,具體內(nèi)容如下
使用UDP實現(xiàn)一個簡單的多人聊天功能。該程序使用了多線程,實現(xiàn)了聊天功能。
package 課后作業(yè).E103_10_聊天; import java.io.IOException; import java.net.*; import java.util.Scanner; //接收 class Receive implements Runnable{ ? ? @Override ? ? public void run() { ? ? ? ? DatagramSocket receiveSocket = null; ? ? ? ? try { ? ? ? ? ? ? receiveSocket = new DatagramSocket(5200); ? ? ? ? } catch (SocketException e) { ? ? ? ? ? ? e.printStackTrace(); ? ? ? ? } ? ? ? ? while (true) { ? ? ? ? ? ? byte[] bytes = new byte[1024]; ? ? ? ? ? ? //創(chuàng)建一個報文,于與接收 ? ? ? ? ? ? DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length); ? ? ? ? ? ? //接收 ? ? ? ? ? ? try { ? ? ? ? ? ? ? ? receiveSocket.receive(datagramPacket); ? ? ? ? ? ? } catch (IOException e) { ? ? ? ? ? ? ? ? e.printStackTrace(); ? ? ? ? ? ? } ? ? ? ? ? ? InetAddress ip = datagramPacket.getAddress(); ? ? ? ? ? ? System.out.println(ip.getHostName()+ new String(datagramPacket.getData())); ? ? ? ? } ? ? } } //發(fā)送 class Send implements Runnable{ ? ? @Override ? ? public void run() { ? ? ? ? DatagramSocket sendSocket = null; ? ? ? ? try { ? ? ? ? ? ? sendSocket = new DatagramSocket(); ? ? ? ? } catch (SocketException e) { ? ? ? ? ? ? e.printStackTrace(); ? ? ? ? } ? ? ? ? Scanner scan = new Scanner(System.in); ? ? ? ? while (true) { ? ? ? ? ? ? String str = scan.next(); ? ? ? ? ? ? //要發(fā)送的信息 ? ? ? ? ? ? byte[] bytes = str.getBytes(); ? ? ? ? ? ? //發(fā)送的目標地址 ? ? ? ? ? ? InetAddress inetAddress = null; ? ? ? ? ? ? try { ? ? ? ? ? ? ? ? inetAddress = InetAddress.getByName("192.168.108.32"); ? ? ? ? ? ? } catch (UnknownHostException e) { ? ? ? ? ? ? ? ? e.printStackTrace(); ? ? ? ? ? ? } ? ? ? ? ? ? //數(shù)據(jù)報文 ? ? ? ? ? ? DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, inetAddress, 5200); ? ? ? ? ? ? //發(fā)送 ? ? ? ? ? ? try { ? ? ? ? ? ? ? ? sendSocket.send(datagramPacket); ? ? ? ? ? ? } catch (IOException e) { ? ? ? ? ? ? ? ? e.printStackTrace(); ? ? ? ? ? ? } ? ? ? ? } ? ? } } public class Test { ? ? public static void main(String[] args) { ? ? ? ? Receive receive = new Receive(); ? ? ? ? Thread thread = new Thread(receive); ? ? ? ? thread.start(); ? ? ? ? Send send = new Send(); ? ? ? ? Thread thread1 = new Thread(send); ? ? ? ? thread1.start(); ? ? } }
運行結(jié)果:
這里實現(xiàn)的是兩人聊天,想要實現(xiàn)多人聊天只需要將接受地址改成廣播地址即可。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java實現(xiàn)基于UDP協(xié)議的聊天小程序操作
- Java網(wǎng)絡(luò)編程UDP實現(xiàn)消息發(fā)送及聊天
- Java網(wǎng)絡(luò)編程UDP實現(xiàn)多線程在線聊天
- java UDP實現(xiàn)一個聊天工具的示例代碼
- java網(wǎng)絡(luò)之基于UDP的聊天程序示例解析
- Java基于UDP協(xié)議實現(xiàn)簡單的聊天室程序
- java中UDP簡單聊天程序?qū)嵗a
- 使用Java和WebSocket實現(xiàn)網(wǎng)頁聊天室實例代碼
- java聊天室的實現(xiàn)代碼
- java使用udp實現(xiàn)簡單多人聊天功能
相關(guān)文章
SpringBoot+Vue+Flowable模擬實現(xiàn)請假審批流程
這篇文章主要為大家詳細介紹了如何利用SpringBoot+Vue+Flowable模擬實現(xiàn)一個請假審批流程,文中的示例代碼講解詳細,需要的可以參考一下2022-08-08Java根據(jù)正整數(shù)的位數(shù)并逆序打印出各位數(shù)字
給一個不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字,需要的朋友可以參考下2017-02-02Spring Boot使用RestTemplate消費REST服務(wù)的幾個問題記錄
這篇文章主要介紹了Spring Boot使用RestTemplate消費REST服務(wù)的幾個問題記錄,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06Java基于jeeplus vue實現(xiàn)簡單工作流過程圖解
這篇文章主要介紹了Java基于jeeplus vue實現(xiàn)簡單工作流過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04基于SpringMVC實現(xiàn)網(wǎng)頁登錄攔截
SpringMVC的處理器攔截器類似于Servlet開發(fā)中的過濾器Filter,用于對處理器進行預(yù)處理和后處理。因此,本文將為大家介紹如何通過SpringMVC實現(xiàn)網(wǎng)頁登錄攔截功能,需要的小伙伴可以了解一下2021-12-12優(yōu)化Java虛擬機總結(jié)(jvm調(diào)優(yōu))
這篇文章主要介紹了優(yōu)化Java虛擬機總結(jié)(jvm調(diào)優(yōu)),具有一定借鑒價值,需要的朋友可以參考下2018-01-01