欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java使用UDP實現(xiàn)多人聊天功能

 更新時間:2022年02月11日 09:11:41   作者:木子_muzi  
這篇文章主要為大家詳細介紹了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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論