zoukankan      html  css  js  c++  java
  • java网络编程

    1. ip、域名、端口

    • InetAddress 封装计算机的ip和域名

      • 获得对象

        ​ - InetAddress.getLocalHost();

        ​ - InetAddress.getByName(String host); //参数host可以是 ip地址/域名

        ​ - InetAddress.getByAddress([String host,]byte[] addr)

      • getHostName() //获取主机名

      • getHostAddress() //获取ip

      • getAddress() //获取byte[] 类型的ip

      //获取本机的InetAdress实例
      InetAddress address=InetAddress.getLocalHost();
      System.out.println(address);
      System.out.println("计算机名:"+address.getHostName());
      System.out.println("IP地址:"+address.getHostAddress());
      byte[] bytes=address.getAddress();//字节数组形式的ip
      System.out.println("字节数组形式的ip:"+Arrays.toString(bytes));
      
    • InetSocketAddress 在InetSocketAddress的基础上封装了端口

      • 创建对象

        InetSocketAddress address=new InetSocketAddress(InetAddress addr,int port)

        InetSocketAddress address=new InetSocketAddress(String host,int port)

      • 获取主机名、ip、端口

      InetAddress iAddress=InetAddress.getLocalHost();
      InetSocketAddress iSAddress=new InetSocketAddress(iAddress,5418);
      System.out.println(iSAddress);
      	//iSAddress.getAddress();同上
      System.out.println("主机名:"+iSAddress.getHostName());
      	//isAddress.getAddress().getHostName(); 同上
      System.out.println("ip:"+iSAddress.getAddress().getHostAddress());
      System.out.println("端口:"+iSAddress.getPort());
      

      2.URL

      			URL url=new URL("http://news.sohu.com/index.html#a?name=ndy");
      			System.out.println("协议:"+url.getProtocol());
      			System.out.println("域名:"+url.getHost());
      			System.out.println("端口:"+url.getPort());
      			System.out.println("默认端口:"+url.getDefaultPort());
      			
      			System.out.println("资源:"+url.getFile());
      			System.out.println("相对路径资源:"+url.getPath());
      			System.out.println("锚点:"+url.getRef());
      			System.out.println("参数:"+url.getQuery());//返回参数,若有锚点返回null
      			
      

      3.UDP: DatagramSocket、 DatagramPacket

      • DatagramPacket常用方法
        • 客户端 DatagramPacket(byte buf[], int length, SocketAddress address)
        • 服务端 DatagramPacket(byte buf[], int length)
        • ​ (get|set) (Address|Data|Length|Offset|Port|SocketAddress)
      //客户端	
      		//1.创建客户端
      		DatagramSocket socket=new DatagramSocket(1452);
      		//2.准备byte[]数据
      		String msg="那好";
      		byte[] data=msg.getBytes();
      		//3.封装数据
      		DatagramPacket packet =new DatagramPacket(data, data.length,new 						InetSocketAddress("localhost",5418));
      		//4.发送数据
      		socket.send(packet);
      		//5.关闭资源
      		socket.close();
      //服务端
      		//1.创建服务端
      		DatagramSocket socket=new DatagramSocket(5418);
      		//2.准备接受数据的容器
      		byte[] container=new byte[1024];
      		//3.封装成包
      		DatagramPacket packet=new DatagramPacket(container, container.length);
      		//4.接收
      		socket.receive(packet);
      		//5.分析-解包
      		byte[] data=packet.getData();
      		int length=packet.getLength();
      		System.out.println(new String(data,0,length));
      		//6.关闭资源
      		socket.close();
      

      4.TCP: ServerSocket 、Socket

    //服务端
    		//1.创建ServerSocket
    		ServerSocket server=new ServerSocket(8888); 
    		//2.接收客户端连接	server.accept()
    		Socket socket=server.accept();
    		//System.out.println("一个客户端建立连接");
    		//3发送数据| 接收数据 socket.getOutputStream()|socket.getInputStream
    		String msg="青山隐隐水迢迢";
    		BufferedWriter bw=new BufferedWriter(
    				new OutputStreamWriter(
    					socket.getOutputStream()
    				)
    			);
    		bw.write(msg);
    		bw.newLine();
    		bw.flush();
    //客户端
    		//1、创建客户端,指定服务器和端口
    		Socket client=new Socket("localhost",8888);
    		//Socket client=new Socket();client.connent(SocketAddress);同上
    		//2、接收数据
    		BufferedReader br=new BufferedReader(
    				new InputStreamReader(client.getInputStream())
    				);
    		String echo=br.readLine();
    		System.out.println(echo);
    		br.close();
    	
    
  • 相关阅读:
    HashMap和Hashtable的区别
    装箱以及拆箱
    泛型
    LinkedList和ArrayList异同
    ArrayList的输出方式以及ArrayList的因子增长数
    limit的优化
    mysql五大数据引擎的分别
    ios
    css3(1)
    php
  • 原文地址:https://www.cnblogs.com/mznsndy/p/12051762.html
Copyright © 2011-2022 走看看