A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 星之钥匙 中级黑马   /  2015-4-24 21:26  /  250 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.UDP
    面向无连接,数据不安全,速度快。不区分客户端与服务端。
   使用udp的简单小例子:
  1. 接收端Receive

  2.         DatagramSocket socket = new DatagramSocket(6666);                        //创建socket
  3.         DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);        //创建packet
  4.         
  5.         while(true) {
  6.             socket.receive(packet);                                                //接收货物
  7.             byte[] arr = packet.getData();
  8.             int len = packet.getLength();
  9.             String ip = packet.getAddress().getHostAddress();
  10.             System.out.println(ip + ":" + new String(arr,0,len));
  11.         }
  12. 发送端Send

  13.         DatagramSocket socket = new DatagramSocket();        //创建socket相
  14.         Scanner sc = new Scanner(System.in);
  15.         
  16.         while(true) {
  17.             String str = sc.nextLine();
  18.             if("quit".equals(str))
  19.                 break;
  20.             DatagramPacket packet =                             //创建packet
  21.                     new DatagramPacket(str.getBytes(), str.getBytes().length, InetAddress.getByName("127.0.0.1"), 6666);
  22.             socket.send(packet);            
  23.         }
  24.         socket.close();
复制代码

   
TCP
 面向连接(三次握手),数据安全,速度略低。分为客户端和服务端。
    三次握手: 客户端先向服务端发起请求, 服务端响应请求, 传输数据    注意,开启线程是先开启服务器,在不重新运行程序的情况下只能开启一次
tcp的小例子
  1.     ServerSocket server = new ServerSocket(9999);    //创建服务器
  2.         while(true) {
  3.             final Socket socket = server.accept();                //接受客户端的请求
  4.             new Thread() {
  5.                 public void run() {
  6.                     try {
  7.                         BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  8.                         PrintStream ps = new PrintStream(socket.getOutputStream());
  9.                         ps.println("欢迎访问客户端");
  10.                         System.out.println(br.readLine());
  11.                         ps.println("欢迎再次访问");
  12.                         System.out.println(br.readLine());
  13.                         socket.close();
  14.                     } catch (IOException e) {
  15.                         e.printStackTrace();
  16.                     }
  17.                 }
  18.             }.start();
  19.         }
  20.     }
复制代码
  1.       Socket socket = new Socket("127.0.0.1", 9999);        //创建Socket指定ip地址和端口号
  2.         InputStream is = socket.getInputStream();            //获取输入流
  3.         OutputStream os = socket.getOutputStream();            //获取输出流
  4.         BufferedReader br = new BufferedReader(new InputStreamReader(is));
  5.         PrintStream ps = new PrintStream(os);
  6.         
  7.         System.out.println(br.readLine());
  8.         ps.println("访问服务器啦");
  9.         System.out.println(br.readLine());
  10.         ps.println("再次访问服务器啦");
  11.         socket.close();
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马