ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java网络编程

2021-04-12 20:59:49  阅读:204  来源: 互联网

标签:Java 编程 网络 System println InetAddress 主机名 local out


网络编程

预备知识

  • 要学习网络编程首先要了解一些计算机网络的知识。
    • 计算机网络三大要素:通信网络+服务器+客户端
    • 服务器一般使用Linux、Unix或Windows Server等操作系统
    • 不同于之前的非网络程序,网络编程既要求编写客户端应用程序有要求编写服务器端应用程序
    • 遵循TCP/IP协议
      • 应用层
      • 传输层
      • 网络层
      • 链路层
    • 比起UDP只发送不管对方收到没,TCP事先建立连接双向数据传输更可靠
    • 网络上两台计算机之间的通信,本质上是两个网络应用程序之间的通信
    • 统一资源定位符URL语法 protocol://[:port]path[?query]

Java API 提供的因特网地址类java.net.InetAddress

  • 使用方法

    import java.io.IOException;
    import java.net.*;
    
    public class JInetAddress {
    
    	public static void main(String[] args)  {
    		try {
    			InetAddress local = InetAddress.getLocalHost(); //获取本机的因特网地址对象
    			System.out.println("通过getLoaclHost获得本机因特网网址对象:"+local);
    			System.out.println("获取主机名:"+local.getHostName());
    			System.out.println("获取主机IP地址:"+local.getHostAddress());
    			System.out.println(local.isReachable(1));
    			
    			String cauWeb = "www.cau.edu.cn";  // 中国农业大学网站的主机名
                InetAddress cau = InetAddress.getByName(cauWeb);  // 根据主机名创建对象
    			System.out.println("通过主机名得本机因特网网址对象:"+cau);
    			System.out.println("获取主机名:"+cau.getHostName());
    			System.out.println("获取主机IP地址:"+cau.getHostAddress());
    			
    		}
    		catch (UnknownHostException e){
    			e.printStackTrace();
    		}
    		catch (IOException e) {
    			System.out.println(e.getMessage());
    		}
    	}
    }
    
  • 实例化一个地址对象–通过静态方法 获取本机的因特网地址对象

    InetAddress local = InetAddress.getLocalHost(); 
    
  • 实例化一个地址对象–通过静态方法 根据主机名创建对象

    InetAddress cau = InetAddress.getByName("www.cau.edu.cn"); 
    
  • 注意InetAddress可能会抛出的UnknownHostException是勾选异常,必须处理

  • 调用非静态方法查看主机名

    System.out.println("获取主机名:"+local.getHostName());
    
  • 调用非静态方法查看IP地址

    System.out.println("获取主机IP地址:"+local.getHostAddress());
    
  • 调用非静态方法查看是否连通

    System.out.println(local.isReachable(1));
    
  • 注意InetAddress可能会抛出的IOException是勾选异常,必须处理

java.net.URL 访问网络资源

import java.net.*;
import java.io.*;
public class JWebPageTest {

	public static void main(String[] args) {
        try {  // 处理可能出现的勾选异常IOException
        	String url_str = "http://www.cau.edu.cn/index.html";
        	//String url_str = "https://www.oracle.com/technetwork/java/index.html";
            URL url = new URL(url_str);
            System.out.println("从网页读取信息: " +url);
            InputStreamReader in = new InputStreamReader(url.openStream(),"UTF-8");
      
           
            char cbuf[] = new char[3000]; //读3000字符
            int len = in.read(cbuf);
            for(int n=0;n<len;n++) {
            	System.out.print(cbuf[n]);
            }
            
            System.out.println("......\n以上是从网页读出的信息。");
            System.out.println("字符编码是:"+in.getEncoding());
            in.close();
        }
        catch(IOException e) { e.printStackTrace(); }  // 捕捉并处理勾选异常

	}

}

标签:Java,编程,网络,System,println,InetAddress,主机名,local,out
来源: https://blog.csdn.net/weixin_46280623/article/details/115636364

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有