UDP也需要現有Server端,然后再有Client端


UDP編程:

DatagramSocket(郵遞員):對應數據報的Socket概念,不需要創建兩個socket,不可使用輸入輸出流。

DatagramPacket(信件):數據包,是UDP下進行傳輸數據的單位,數據存放在字節數組中。

UDP也需要現有Server端,然后再有Client端。

兩端都是DatagramPacket(相當於電話的概念),需要NEW兩個DatagramPacket。

InetAddress:網址

這種信息傳輸方式相當於傳真,信息打包,在接受端准備紙。

模式:

發送端:Server:

DatagramPacket inDataPacket=new DatagramPacket ((msg,msg.length); InetAdress.getByName(ip),port);

接收端:

clientAddress=inDataPack.getAddress();//取得地址

clientPort=inDataPack.getPort();//取得端口號

datagramSocket.send; //Server

datagramSocket.accept; //Client

 

 

 1 package TomTexts;
 2 import java.io.*;
 3 
 4 public class TomTexts_31 {
 5     public static void main(String []args){
 6         byte b[]=new byte[10];
 7         String str;
 8         int n=0;
 9         double sum=0,d,avg;
10         System.out.print("要對幾個數求平均?");
11         try{    System.in.read(b);
12             str=new String(b).trim();        //去除多余的/r、/n、空格符
13             n=Integer.parseInt(str);
14         }
15 catch(IOException e){
16             System.out.println(e.toString());
17         }
18 catch(NumberFormatException e){
19             System.out.println("請不要輸入0-9以外的其他字符!");
20             System.exit(-1); //程序異常結束
21         }
22         for(int i=1;i<=n;i++){
23             System.out.print(i+": ");
24             try{    System.in.read(b);
25                 str=new String(b);
26                 Double x=new Double(str);
27                 d=x.doubleValue();
28                 sum+=d;
29             }
30 catch(IOException e){
31                    System.out.println(e.toString());
32             }
33 catch(NumberFormatException e){
34                 i--;        //重新輸入
35                 System.out.println("請正確輸入實數!");
36             }
37         }
38         System.out.println("平均值="+sum/n);
39     }
40 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM