socket编程,简单查看

本文介绍了一个简单的Java程序,用于测试网络连接状态。该程序通过输入域名或IP地址及端口号来检查网络连通性,并报告连接成功与否及耗时。

公司的网络不给力啊!

没办法,只好等待网络正常的时候在查阅一些资料,顺便复习下socket!

public static void main(String[] args) {
    	/**
    	 * 测试网络互通情况
    	 * <p>
    	 * 1.输入完整域名或者Ip地址,端口号
    	 * 2.如果能连接成功,显示连接消耗的时间
    	 * 3.如果连接失败,输出错误信息
    	 * </p>
    	 */
    	String host = "";
    	int port=80;
		Scanner sc = new Scanner(System.in);
		
		boolean flag =true;
		while (flag) {
			System.out.println("请输入域名");
			host=sc.next();
			System.out.println("请输入端口");
			port=Integer.parseInt(sc.next());
			new SocketDemo().connect(host, port);
			System.out.println("是否需要继续输入,继续请输入T,不继续请输入F");
			if (sc.next().equals("T")) {
				continue ;
			}else{
				System.out.println("谢谢使用本系统!");
		        break;
			}
			
		}
		
		
	}
    public void connect(String host,int port){
    	SocketAddress remoteAddr=new InetSocketAddress(host,port);
    	Socket socket = null;
    	String result="";
    	
    	try {
    		long begin=System.currentTimeMillis();
        	socket = new Socket();
			socket.connect(remoteAddr, 10000);
			long end = System.currentTimeMillis();
			result ="恭喜你连接成功,耗时  "+ (end-begin)+"ms";
		} catch (BindException e) {
			result="local address and port cant bind";
		}catch (UnknownHostException e) {
			result="Unknow Host";
		}catch (ConnectException e) {
			result="Connect Refused";
		}catch (SocketTimeoutException e) {
			result="TimeOut";
		}catch (IOException e) {
			result="failure";
		}finally{
			if (socket!=null)
				try {
					socket.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
		}
    	System.out.println(remoteAddr+":"+result);
    	
    	
    }

转载于:https://my.oschina.net/dlpinghailinfeng/blog/114509

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值