【小程式】使用UDP實現群聊功能
說明:該程式使用了多執行緒技術,在使用的時候請將傳送IP該成廣播IP地址,即可實現群聊:
/*
* 群聊主執行緒
*/
package com.lin.michael;
public class CharMain {
public static void main(String[] args){
//啟動接收執行緒
ChartReceieve chartReceieve = new ChartReceieve();
chartReceieve.start();
//開啟傳送執行緒
ChartSender chartSender = new ChartSender();
chartSender.start();
}
}
//傳送類
/*
* 群聊傳送端
*/
package com.lin.michael;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class ChartSender extends Thread {
@Override
public void run() {
try {
//1.建立udp通訊
DatagramSocket socket = new DatagramSocket();
//2.準備資料,把資料放入到資料包中傳送
BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in));
String line = null;
DatagramPacket packet = null;
while((line=keyReader.readLine())!=null){
//把資料封裝到資料包中傳送出去
packet = new DatagramPacket(line.getBytes(), line.getBytes().length, InetAddress.getLocalHost(),9090);
//把資料傳送出去
socket.send(packet);
}
//關閉資源
socket.close();
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//接收類
/*
* 群聊接收端
*/
package com.lin.michael;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class ChartReceieve extends Thread{
@Override
public void run() {
try {
//1.建立udp服務,要監聽一個埠;
DatagramSocket socket = new DatagramSocket(9090);
//2.準備資料並使用包來封裝
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
//持續接收傳送的資料
while(true){
//接收資料包放入到packet中
socket.receive(packet);
System.out.println(packet.getAddress().getHostAddress() + "說:" + new String(buf, 0, packet.getLength()));
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
相關文章
- 10行程式碼實現微信小程式支付功能,使用小程式雲開發實現小程式支付功能(行程微信小程式
- 小遊戲群聊分享又有新套路,小程式實現全面佈局遊戲
- 實現小程式canvas拖拽功能Canvas
- 小程式實現實時聊天IM功能
- 微信小程式 遮罩功能實現微信小程式遮罩
- 微信小程式實現換膚功能微信小程式
- 聊聊UDP、TCP和實現一個簡單的JAVA UDP小DemoUDPTCPJava
- c 語言實現 tcp/udp 伺服器功能TCPUDP伺服器
- 使用taro+canvas實現微信小程式的圖片分享功能Canvas微信小程式
- websocket學習和群聊實現Web
- 微信小程式-實現實時聊天功能 前端部分微信小程式前端
- 深入解析dio(一) Socket 程式設計實現本地多端群聊程式設計
- 微信小程式使用同聲傳譯實現語音識別功能微信小程式
- 小程式–儲存圖片到相簿功能實現
- 微信小程式如何實現自動退款功能?微信小程式
- django與小程式實現登入驗證功能Django
- 微信小程式 簡易搜尋功能實現微信小程式
- 網路程式設計原理與UDP實現程式設計UDP
- 藉助小程式雲開發實現小程式的登陸註冊功能
- netty無縫切換rabbitmq、activemq、rocketmq實現聊天室單聊、群聊功能NettyMQ
- 實現WebRTC群聊會議室(Mesh方案)Web
- 通過 Socket 實現 UDP 程式設計 入門UDP程式設計
- 商家如何快速建立短影片群聊,實現變現?
- 微信小程式功能之全屏滾動效果的實現程式碼微信小程式
- 微信小程式之繫結銀行卡功能實現微信小程式
- 微信小程式 傳送模板訊息的功能實現微信小程式
- 乾貨:如何藉助小程式雲開發實現小程式支付功能(含原始碼)原始碼
- java實現UDP通訊JavaUDP
- 如何使用小程式自定義元件功能元件
- Python網路程式設計實現TCP和UDP連線Python程式設計TCPUDP
- 「小程式JAVA實戰」小程式影片列表到詳情功能(58)Java
- 關於直播賣貨小程式原始碼推流功能的實現原始碼
- 快手小程式CPS分銷功能,實現達人更多營收可能營收
- 當微信小程式遇上TensorFlow:小程式實現微信小程式
- 【微信小程式canvas】實現小程式手寫板使用者簽名(附程式碼)微信小程式Canvas
- 「小程式JAVA實戰」小程式的影片點贊功能開發(62)Java
- 使用redis實現互粉功能Redis
- 使用 jQuery 實現分頁功能jQuery
- Day10-微信小程式實戰-交友小程式-建立friendList欄位實現好友關係(新增好友功能)--內附程式碼微信小程式