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

    // 有参构造函数创建的socket会访问网络,无参的则不会
    //Socket socket=new Socket("www.baidu.com",80);


    // 当本地端口为0则表明由系统随机分配端口
    //Socket socket=new Socket("www.baidu.com",80,InetAddress.getByName("localhost"),0);

    Socket socket = new Socket();
    //通过connect方法还能指定连接的超时时间,socket的设置最好在connect方法之前调用相关方法
    socket.connect(new InetSocketAddress(InetAddress.getByName("www.baidu.com"), 80),5000);

    try {
      if(socket!=null){
      //socket关闭的时候由于客户端可能先关闭所以会异常,这时不用处理异常
      socket.close();
      }
    } catch (Exception e) {
    }


    //socket即使关闭也能获取相关的信息
    System.out.println(socket.getInetAddress());


    //判断sokcet是否有连接过远程机器
    System.out.println(socket.isConnected());
    //判断socket是否关闭,socket没有连接过也返回false
    System.out.println(socket.isClosed());
    //正确判断socket是否打开
    System.out.println(socket.isConnected() && !socket.isClosed());

    //判断socket是否有绑定过本地端口
    System.out.println(socket.isBound());


    //获取输入和输出流,可获取远程的数据和给远程发送数据,当它们任何一个关闭,socket也会关闭
    socket.getInputStream();
    socket.getOutputStream();


    //socket关闭的时候,输入和输出流都会自动关闭,下面的方法只关闭相关的流
    socket.shutdownInput();
    socket.shutdownOutput();

    //设置读取数据超时时间,单位ms
    socket.setSoTimeout(1000);


    //可以在socket关闭后对象回收后再获取重复利用
    SocketAddress address=new InetSocketAddress("www.baidu.com",80);

  • 相关阅读:
    小白日记41:kali渗透测试之Web渗透-SQL手工注入(三)-猜测列名、表名、库名、字段内容,数据库写入
    Python实现百度贴吧自动顶贴机
    回文自动机简述
    计算几何基本知识整理
    考试题Speed
    [ZOJ 2112] [lg2617] Dynamic Rankings
    后缀数组(Suffix Arrary)
    莫比乌斯函数与莫比乌斯反演
    题解 洛谷 P3369 【【模板】普通平衡树】
    EXCRT(扩展中国剩余定理)
  • 原文地址:https://www.cnblogs.com/mu-mu/p/4062919.html
Copyright © 2011-2022 走看看