亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

當使用UDP協議,客戶端接收服務器響應消息,沒有完全顯示出

public class UDPRunnable extends Thread{

DatagramPacket packet;;

//初始化DatagramPacket, DatagramSocket

public UDPRunnable(DatagramPacket packet){

this.packet=packet;

}

public void run() {

byte[] data=packet.getData();//!!!這里應該使用packet的getData方法來創建data字節,不然data字節中為空值

String info=new String(data,0,packet.getLength());//

System.out.println("我是服務器,客戶端說:"+info);

/*

* 服務器向客戶端發送響應信息

*/

//需要知道客戶端的address,port,并且創建需要發送的消息

InetAddress address=packet.getAddress();

int port=packet.getPort();

byte[] data2="客戶端登陸成功,歡迎使用服務器".getBytes();

//創建DatagramPacket

DatagramPacket packet2=new DatagramPacket(data2,data2.length,address,port);

try {

DatagramSocket socket=new DatagramSocket();

socket.send(packet2);

} catch (SocketException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


}



public class UDPClient {

public static void main(String[] args) throws IOException {

/*

* 向服務器端發送消息

*/

//1.需要獲取服務器端的地址,端口號

InetAddress address=InetAddress.getByName("localhost");

int port=6605;

byte[] message="用戶名:admin 密碼:123".getBytes();

//創建數據報

DatagramPacket packet=new DatagramPacket(message,message.length,address,port);

//創建DatagramSocket

DatagramSocket socket=new DatagramSocket();

socket.send(packet);

/*

* 接收服務器端發送的響應消息

*/

//創建DatagramPacket

byte[] data=new byte[10*1024];

DatagramPacket packet2=new DatagramPacket(data,data.length);

socket.receive(packet2);

String reply=new String(data,0,packet.getLength());

System.out.println("我是客戶端,服務器說:"+reply);

}

}



客戶端輸出結果: ?客戶端啟動成功,歡迎使 ? ?

正在回答

1 回答

  1. 繼承了Thread類,run()方法沒有運行??茨闶窍雽崿Frunnable接口,但是卻繼承了Thread類。只有實現了Runnable接口,run()方法才能自動運行。還有,第二行有兩個分號。

  2. 服務器端程序(UDPRunnable)沒有入口(沒有main方法。)

  3. DatagramSocket socket=new DatagramSocket();未指定端口號。

  4. 服務器端程序(UDPRunnable)步驟有誤。縣先創建DatagramSocket實例,指定端口,在創建DatagramPacket數據包,在用socket實例接收數據。玩了用String的構造方法讀取數據??蛻舳舜a沒有問題。

    其他的沒有看出來。共同學習,嘻嘻~

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

當使用UDP協議,客戶端接收服務器響應消息,沒有完全顯示出

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號