【小程式】使用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
- 使用taro+canvas實現微信小程式的圖片分享功能Canvas微信小程式
- 微信小程式-實現實時聊天功能 前端部分微信小程式前端
- c 語言實現 tcp/udp 伺服器功能TCPUDP伺服器
- 微信小程式 簡易搜尋功能實現微信小程式
- 微信小程式如何實現自動退款功能?微信小程式
- websocket學習和群聊實現Web
- 微信小程式使用同聲傳譯實現語音識別功能微信小程式
- Python實現UDP包程式設計PythonUDP程式設計
- django與小程式實現登入驗證功能Django
- 小程式–儲存圖片到相簿功能實現
- 自定義EditText輕鬆實現群聊@提及(@mention) #微博話題#等功能
- iOS微信QQ聊天介面的UI框架以及Socket簡單實現群聊功能iOSUI框架
- 深入解析dio(一) Socket 程式設計實現本地多端群聊程式設計
- 藉助小程式雲開發實現小程式的登陸註冊功能
- 微信6.3.28新版釋出:群聊功能升級 群聊能收錢
- 網路程式設計原理與UDP實現程式設計UDP
- 用UDP實現區域網內聊天程式UDP
- 微信小程式之繫結銀行卡功能實現微信小程式
- 微信小程式 傳送模板訊息的功能實現微信小程式
- 微信小程式功能之全屏滾動效果的實現程式碼微信小程式
- 整合融雲Android SDK實現在群聊/討論組中@人的功能Android
- 實現WebRTC群聊會議室(Mesh方案)Web
- websocket技術,實現單聊和群聊Web
- 商家如何快速建立短影片群聊,實現變現?
- netty無縫切換rabbitmq、activemq、rocketmq實現聊天室單聊、群聊功能NettyMQ
- 通過 Socket 實現 UDP 程式設計 入門UDP程式設計
- 乾貨:如何藉助小程式雲開發實現小程式支付功能(含原始碼)原始碼
- java實現UDP通訊JavaUDP
- 如何使用小程式自定義元件功能元件
- 使用Webcam實現拍照功能Web
- 「小程式JAVA實戰」小程式影片列表到詳情功能(58)Java