// 有参构造函数创建的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);

java网络编程3-Socket的更多相关文章

  1. AJPFX总结Socket的低层次Java网络编程

    Socket的低层次Java网络编程 1 Socket通讯 网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket.Socket通常用来实现客户方和服务方的连接. ...

  2. java网络编程socket解析

    转载:http://www.blogjava.net/landon/archive/2013/07/02/401137.html Java网络编程精解笔记2:Socket详解 Socket用法详解 在 ...

  3. 基于Socket的低层次Java网络编程

    Socket通讯 网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket.Socket通常用来实现客户方和服务方的连接.Socket是TCP/IP协议的一个十分流 ...

  4. java基础-网络编程(Socket)技术选型入门之NIO技术

    java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...

  5. 如何使用socket进行java网络编程(二)

    通过在如何使用socket进行java网络编程(一)中程序的编写,可以总结出一些常用的java socket编程的范例来. ServerSocket server = new ServerSocket ...

  6. Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制

    Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制 JAVA 中原生的 socket 通信机制 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.co ...

  7. 从零探索Java网络编程01之 TCP/IP 与 Socket

    最近完成了几项比较简单的项目, 终于是在996里偷了点闲暇时光, 想着来研究研究些啥吧?  一个普通的控制台日志映入了我的眼帘(孽缘呀): (图中使用 SpringBoot 的 log4j 来输出日志 ...

  8. Java网络编程——Socket

    网络是连接不同计算机的媒介,不同的计算机依靠网络来互相通信,即传递数据. Java中与网络编程相关的部分主要是Socket(套接字),它作为一种抽象的结构,实现了与通信相关的各类方法,构成一套完整的通 ...

  9. java网络编程socket\server\TCP笔记(转)

    java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04|  分类: Socket |  标签:java  |举报|字号 订阅     1 TCP的开销 a ...

  10. day05 Java网络编程socket 与多线程

    java网络编程 java.net.Socket Socket(套接字)封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过 它获取两个流(一个输入一个输出),然后使用这两个流的 ...

随机推荐

  1. Android 内存泄漏分析利器——leakcanary

    LeakCanary Android 和 Java 内存泄露检测. “A small leak will sink a great ship.” - Benjamin Franklin 千里之堤, 毁 ...

  2. (原创)开发使用Android studio所遇到的一些问题总结

    1.Android studio下载链接地址(无需FQ):包括先行版和正式版(推荐使用正式版bug少) http://www.androiddevtools.cn/ 2.第一次安装避免成功先不要急着打 ...

  3. NET:Checkboxlist,Dropdownlist 加入ToolTip说明

    ToolTip属性: ToolTip 类 (System.Windows.Controls)‎ 表示创建弹出项的控件.该弹出项可显示界面中元素的相关信息.命名空间: System.Windows.Co ...

  4. ZK框架笔记2、ZK框架安装、相关类库、web及zk配置

    1.先去ZK官网注册一个账号 2.在MyEclipse菜单栏中Help----Eclipse Marketplace中搜索ZK Studio,点击install安装即可         3.相关类库 ...

  5. Python-代码对象

    可调用的对象是python执行环境中最重要的部分,python语句,赋值,表达式,模块等,这些 对象只是构成可执行代码块的拼图的很少的一部分,而这些代码块被称为代码对象.   每个可调用的对象的核心都 ...

  6. css3 使用animation实现动画效果

    .rotation { -webkit-animation-name: rotation; -webkit-animation-duration: 30s; -moz-animation-name: ...

  7. linux 安装 登录 centos7

    常用资源下载 r.aminglinux.com centos7.aminglinux.com http://www.apelearn.com/study_v2/ 认识linux Debian Slac ...

  8. mysql-ubuntu14.04彻底卸载mysql

    删除mysql的数据文件 sudo rm /var/lib/mysql/ -R 删除mysql的配置文件 sudo rm /etc/mysql/ -R 自动卸载mysql(包括server和clien ...

  9. 关闭了的SQL Server服务如何打开

    在cmd里输入如下:net start mssqlserver

  10. AAtitit.随时间变色特效 ---包厢管理系统的规划titit.随

    Atitit.随时间变色特效 ---包厢管理系统的规划 1 流程滴定仪 定义的参数 颜色.位置(开始值,结束值,当前比值) >>返回数值 可以后期处理转成双位16进制码 分别定义复合颜色的 ...