91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java?Socket如何實現UDP編程

發布時間:2022-11-07 09:22:14 來源:億速云 閱讀:124 作者:iii 欄目:開發技術

這篇文章主要講解了“Java Socket如何實現UDP編程”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java Socket如何實現UDP編程”吧!

一、概述

在 Java 中使用 UDP 編程,仍然需要使用 Socket ,因為應用程序在使用 UDP 時必須指定網絡接口 ( IP地址 )和端口號。注意: UDP 端口和 TCP 端口雖然都使用 0 ~ 65535 ,但他們是兩套獨立的 端口,即一個應用程序用TCP占用了端口 1234 ,不影響另一個應用程序用UDP占用端口 1234 。

二、服務器

在服務器端,使用 UDP 也需要監聽指定的端口。Java提供了 DatagramSocket 來實現這個功能

package com.ljl.udp.demo2;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.util.Scanner;
public class ChatB {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		//客戶端B監聽7788端口
		try (DatagramSocket socket = new DatagramSocket(7788)) {
			//提前創建兩個Packet數據包分別用于發送和接收
			DatagramPacket sendPacked = new DatagramPacket(new byte[1024],1024,//數據
					new InetSocketAddress("192.168.254.163",8899));//目的地
			DatagramPacket receivePacket = new DatagramPacket(new byte[1024], 1024);
			DatagramPacket sendPackedx = new DatagramPacket(new byte[1024],1024,//數據
					new InetSocketAddress("192.168.254.163",6677));//目的地
			while(true) {
				//發送
				System.out.println("你說:");
				String sendContent = input.nextLine();
				sendPacked.setData(sendContent.getBytes());
				socket.send(sendPacked);
				sendPackedx.setData(sendContent.getBytes());
				socket.send(sendPackedx);
				if(sendContent.equals("退下")) {
					System.out.println("你退出了聊天...");
					break;
				}
				//接收
				socket.receive(receivePacket);
				String receiveContent = new String(receivePacket.getData(),receivePacket.getOffset(),receivePacket.getLength());
				if(sendContent.equals("退下")) {
					System.out.println("對方退出了聊天...");
					break;
				}
				System.out.println("他說:"+receiveContent);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

三、客戶端

和服務器端相比,客戶端使用 UDP 時,只需要直接向服務器端發送 UDP 包,然后接收返回的 UDP 包:

package com.ljl.udp.demo2;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.util.Scanner;
public class ChatA {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		//客戶端A監聽8899端口
		try (
		 DatagramSocket socket = new DatagramSocket(8899)) {
			DatagramPacket sendPacked = new DatagramPacket(new byte[1024], 1024);
			DatagramPacket receivePacket = new DatagramPacket(new byte[1024], 1024,new InetSocketAddress("192.168.254.163",7788));
			while(true) {
				//接收
				socket.receive(receivePacket);
				String receiveContent = new String(receivePacket.getData(),receivePacket.getOffset(),receivePacket.getLength());
				if(receiveContent.equals("退下")) {
					System.out.println("對方退出了聊天...");
					break;
				}
				System.out.println("他說:"+receiveContent);
				//發送
				System.out.println("你說:");
				String sendContent = input.nextLine();
				sendPacked.setData(sendContent.getBytes());
				socket.send(sendPacked);
				if(sendContent.equals("退下")) {
					System.out.println("你退出了聊天...");
					break;
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Java?Socket如何實現UDP編程

感謝各位的閱讀,以上就是“Java Socket如何實現UDP編程”的內容了,經過本文的學習后,相信大家對Java Socket如何實現UDP編程這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永州市| 滦平县| 乾安县| 迭部县| 泰顺县| 信阳市| 瓦房店市| 交城县| 于田县| 孝昌县| 磐安县| 西昌市| 祁连县| 北安市| 胶南市| 镇康县| 高雄市| 廊坊市| 义乌市| 肇州县| 宁津县| 资兴市| 巴中市| 阳西县| 芦山县| 江西省| 明光市| 凉城县| 陕西省| 遵义市| 鱼台县| 灌阳县| 浮山县| 泾川县| 德州市| 东城区| 济南市| 商南县| 和龙市| 边坝县| 凤山市|