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);

  • 相关阅读:
    【LeetCode OJ】Remove Element
    【LeetCode OJ】Remove Duplicates from Sorted Array
    【LeetCode OJ】Swap Nodes in Pairs
    【LeetCode OJ】Merge Two Sorted Lists
    【LeetCode OJ】Remove Nth Node From End of List
    【LeetCode OJ】Two Sum
    【LeetCode OJ】Majority Element
    最长公共子序列问题
    php fopen与file_get_contents的区别
    PHP 技巧集合
  • 原文地址:https://www.cnblogs.com/mu-mu/p/4062919.html
Copyright © 2011-2022 走看看