1. 程式人生 > >UDP也需要現有Server端,然後再有Client端

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

信息 輸出流 oid nta tag pub 多余 parseint ati

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 }

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