當前位置:首頁 » 編程語言 » javaudp

javaudp

發布時間: 2022-02-13 16:33:57

1. java udp 有必要用NIO嗎AIO支持UDP嗎

這得看你的程序具體的業務量了。

從性能上來說NIO是比較合適的。AIO比較符合大吞吐量的網路程序。

2. 如何用java實現UDP的可靠傳輸

我記憶中可靠的傳輸應該類似TCP的三次握手:
1.發送方向接收方發送一個隨機數。
2.接收方收到隨機數後將其+1,再回傳給發送方。
3.發送方收到隨機數判斷其是否被+1,如果是代表雙方的傳遞線路是通暢的,可以正式開始傳送數據。

3. java 怎麼用UDP實時接收數據

我自己寫的代碼:

importjava.io.IOException;
importjava.net.DatagramPacket;
importjava.net.DatagramSocket;
importjava.net.InetAddress;
importjava.net.SocketException;
importjava.net.UnknownHostException;
publicclassUdpRecvDemo
{

publicstaticvoidmain(String[]args)throwsIOException
{
Recv();
}

publicstaticvoidRecv()throwsIOException
{
System.out.println("接受開始......");
DatagramSocketds=newDatagramSocket(3388);
while(true)
{
byte[]buf=newbyte[1024];
DatagramPacketdp=newDatagramPacket(buf,buf.length);
ds.receive(dp);
System.out.println(ds);
Stringip=dp.getAddress().getHostAddress();
intport=dp.getPort();
Stringtext=newString(dp.getData(),0,dp.getLength());
if(text.equals("exit"))
{
System.out.println(ip+"退出會話......");
break;
}
System.out.println(ip+":"+port+"===>me"+text);
}

ds.close();
}
}

4. java如何發送UDP報文

建議的代碼,這個官網里有例子

5. 我寫了一個Java的UDP網路通訊,就是在本機的時候就可以接收到消息,但是兩台機器就不行了,詳細:

先ping一下對方的ip,看有沒有ping通呢

6. java 中怎麼使用UDP

發送步驟:

使用 DatagramSocket(int port) 建立socket(套間字)服務。

將數據打包到DatagramPacket中去

通過socket服務發送 (send()方法)

關閉資源

importjava.io.IOException;
importjava.net.*;

publicclassSend{

publicstaticvoidmain(String[]args){

DatagramSocketds=null;//建立套間字udpsocket服務

try{
ds=newDatagramSocket(8999);//實例化套間字,指定自己的port
}catch(SocketExceptione){
System.out.println("Cannotopenport!");
System.exit(1);
}

byte[]buf="Hello,Iamsender!".getBytes();//數據
InetAddressdestination=null;
try{
destination=InetAddress.getByName("192.168.1.5");//需要發送的地址
}catch(UnknownHostExceptione){
System.out.println("Cannotopenfindhost!");
System.exit(1);
}
DatagramPacketdp=
newDatagramPacket(buf,buf.length,destination,10000);
//打包到DatagramPacket類型中(DatagramSocket的send()方法接受此類,注意10000是接受地址的埠,不同於自己的埠!)

try{
ds.send(dp);//發送數據
}catch(IOExceptione){
}
ds.close();
}
}

接收步驟:

使用 DatagramSocket(int port) 建立socket(套間字)服務。(我們注意到此服務即可以接收,又可以發送),port指定監視接受埠。

定義一個數據包(DatagramPacket),儲存接收到的數據,使用其中的方法提取傳送的內容

通過DatagramSocket 的receive方法將接受到的數據存入上面定義的包中

使用DatagramPacket的方法,提取數據。

關閉資源。

importjava.net.*;

publicclassRec{

publicstaticvoidmain(String[]args)throwsException{

DatagramSocketds=newDatagramSocket(10000);//定義服務,監視埠上面的發送埠,注意不是send本身埠

byte[]buf=newbyte[1024];//接受內容的大小,注意不要溢出

DatagramPacketdp=newDatagramPacket(buf,0,buf.length);//定義一個接收的包

ds.receive(dp);//將接受內容封裝到包中

Stringdata=newString(dp.getData(),0,dp.getLength());//利用getData()方法取出內容

System.out.println(data);//列印內容

ds.close();//關閉資源
}
}

7. JAVA中如何完成UDP包的封裝

給你一段代碼,或許可以幫到你……

public class SendSideTest {
/*發送數據 */
public static void main(String[] args) throws IOException {
//1 DatagramSocket是用來接收發送數據的
DatagramSocket ds = new DatagramSocket();
//2 發送什麼
byte[] s="helloabcdef".getBytes();
//3 發送到哪,發送到本機
InetAddress clientAddress=InetAddress.getLocalHost();
//4 搭建一個outDataPacket相當於一個郵包
//把發送的內容,發送的地址,發送的埠,寫在郵包上
DatagramPacket op = null;
op=new DatagramPacket(s, s.length,clientAddress, 9999);
//5 通過一個DatagramPacket將數據發送到客戶端,
//客戶端的地址由DatagramPacket指定,即寫在郵包上
ds.send(op);
System.out.println("數據已經成功發送");
}
}

public class ReceiveSideTest {
/* 接收方*/
public static void main(String[] args) throws IOException {
//1 DatagramSocket相當於建立一個伺服器 在9999監聽
DatagramSocket ds = new DatagramSocket(9999);
//2 DatagramPacket是用來接收發送的數據的 要有容器接收
byte[] msg = new byte[100];
DatagramPacket ip = new DatagramPacket(msg, msg.length);
//3調用receive方法接收數據到DatagramPacket 中
//數據又由DatagramPacket放入msg
ds.receive(ip);
String msgs = new String(msg);
System.out.println(msgs);
//4通過DatagramPacket得到地址和埠 把發送者列印出來
InetAddress clientAddress = ip.getAddress();
int clientPort = ip.getPort();
System.out.println("發送者:"+clientAddress);
System.out.println("發送埠:"+clientPort);
}
}

8. java中UDP文件傳輸怎麼實現

java UDP連接,如果要發送文件的話,你只能自己定義一系列的協議
因為TCP UDP 雙方發送都是二進制數據
那麼這個實現非常復雜
得不停的發送數據,寫數據,建議使用http協議

9. 一個簡單java實現udp通信

UDP也可以和TCP那樣遍歷list然後發送啊
客戶端向外面開一個UDP埠接受數據報
然後伺服器這邊要是有消息要發送就直接發送數據報包就可以了嘛
UDP都不用保持著連接的,比TCP還簡單些

另外也可以用組播來實現,搜索下java UDP 組播,你能找到不少實例性的代碼,也有聊天室的代碼

10. 用java實現UDP校驗和計算

public static void main(String[] arg) {
String str = "hello";
System.out.println(toByte(str));
// 得到結果:byte[] sbytes = { 0X68, 0X65, 0X6c, 0X6c, 0X6f };
}

private static String toByte(String str) {
byte[] bytes = str.getBytes();
StringBuffer sb = new StringBuffer();
sb.append("byte[] sbytes = { ");
for (int i = 0; i < bytes.length; i++) {
sb.append(String.format("0X%s", Integer.toHexString(bytes[i])));
if (i < bytes.length - 1) {
sb.append(", ");
}
}
sb.append(" };").append("\r\n");
return sb.toString();
}

熱點內容
android啟動速度優化 發布:2025-01-09 01:08:17 瀏覽:914
hadoop命令上傳文件 發布:2025-01-09 01:08:16 瀏覽:601
編譯器的構造和設計 發布:2025-01-09 01:08:13 瀏覽:460
房東不給配置冰箱怎麼辦 發布:2025-01-09 01:02:54 瀏覽:381
我的世界伺服器刷東西手機版 發布:2025-01-09 01:02:15 瀏覽:207
圓立方怎麼演算法 發布:2025-01-09 00:52:49 瀏覽:789
賣房電話腳本 發布:2025-01-09 00:38:23 瀏覽:747
手機上的密碼怎麼改密碼 發布:2025-01-09 00:35:46 瀏覽:295
電腦聯網代理伺服器出現問題 發布:2025-01-09 00:29:15 瀏覽:526
傳統的數據存儲的管理技術 發布:2025-01-09 00:22:05 瀏覽:556