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 }