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 }
原文地址:https://www.cnblogs.com/borter/p/9425018.html