1  socket构造器:

public Socket() 创建一个Socket套接字
public Socket(InetAddress address,int port) 创建一个指定IP和端口的套接字
Socket(InetAddress address, int port, InetAddress localAddr, int localPort) 创建一个指定IP和端口的套接字;并将其和指定的远程端口连接起来
Socket(Proxy proxy) 创建一个指定代理的套接字
Socket(SocketImpl impl) 创建一个用户指定的套接字
Socket(String host, int port) 创建一个IP和端口的套接字
Socket(String host, int port, InetAddress localAddr, int localPort)  
·1 public Socket()构造器:
创建一个Socket对象,并且连接指定的socket地址;设置连接的超时时间为60s;
  1. package com.asiaInfo.caozg.ch_01;
  2.  
  3. import java.io.IOException;
  4. import java.net.InetAddress;
  5. import java.net.InetSocketAddress;
  6. import java.net.Socket;
  7. import java.net.SocketAddress;
  8.  
  9. /**
  10. * @Authgor: gosaint
  11. * @Description:
  12. * @Date Created in 14:55 2018/1/13
  13. * @Modified By:socket相关的构造方法
  14. */
  15. public class SocketContructor {
  16. public static void main(String[] args) throws IOException{
  17. Socket socket=new Socket();
  18. // 设置连接的端口和ip
  19. SocketAddress address=new InetSocketAddress("localhost",8000);
  20. // 连接指定的socketAddress,并且设置超时时间
  21. socket.connect(address,60000);
  22. }
  23. }
接下来我们看看connetc()方法;
public void connect(SocketAddress endpoint,int timeout)throws IOException
       SocketAddress 这个类代表一个没有协议附件的套接字地址。作为一个抽象类,它应该是一个具体的子类实现。 很显然,在上述的代码中:InetSocketAddress就是SocketAddress的实现类,并且指定了socket连接的地址:localhost 8000。timeout为超时时间,单位ms.如果60s内连接不上,就是报相关的异常;
·2 java.net.ConnectException: Connection refused: connect
    连接拒绝异常:就是上述代码,不可以连接这个指定的地址;

  1. package com.asiaInfo.caozg.ch_01;
  2.  
  3. import java.io.IOException;
  4. import java.net.*;
  5.  
  6. /**
  7. * @Authgor: gosaint
  8. * @Description:
  9. * @Date Created in 15:09 2018/1/13
  10. * @Modified By:socket的常见异常
  11. */
  12. public class IOExceptionSocket {
  13. public static void main(String[] args) {
  14. String host="localhost";
  15. int port=25;
  16. // 如果数组的长度大于1,那么将第一个元素赋值给host,第二个元素赋值给port
  17. if(args.length>1){
  18. host=args[0];
  19. port=Integer.parseInt(args[1]);
  20. }
  21. System.out.println("==========");
  22. new IOExceptionSocket().connect(host,port);
  23. }
  24.  
  25. private void connect(String host, int port) {
  26. //根据传递的host和port构建连接的地址
  27. SocketAddress address=new InetSocketAddress(host,port);
  28. Socket socket=null;
  29. String result="";
  30. try {
  31. long begin=System.currentTimeMillis();//开始连接时间
  32. socket=new Socket();
  33. socket.connect(address,20000);
  34. long end=System.currentTimeMillis();//结束时间
  35. result=(end-begin)+"ms";
  36. }catch (BindException e){
  37. result="本地地址和端口绑定异常";
  38. }catch (UnknownHostException e){
  39. result="不知道的端口异常";
  40. }catch (ConnectException e){
  41. result="连接异常";
  42. }catch (SocketTimeoutException e){
  43. result="连接超时异常";
  44. }catch (IOException e){
  45. result="IO异常";
  46. }finally {
  47. try {
  48. if(socket!=null)socket.close();
  49. }catch (IOException e){
  50. e.printStackTrace();
  51. }
  52. }
  53. System.out.println(address+":"+result);
  54. }
  55. }

Socket对象以及异常的更多相关文章

  1. socket对象放在一个datagridview的row的tag里面在拿出来 为什么是已释放

     socket对象放在一个datagridview的row的tag里面在拿出来 为什么是已释放 

  2. 【C/C++学院】0831-类与对象的异常/面试100题1-100

    类与对象的异常 Cpp异常 #include <iostream> #include <string.h> using namespace std; //标识错误的类型 cla ...

  3. TCP/IP以及Socket对象基本

    1 OSI七层模型概念介绍 物理层:数据以比特的方式进行传递,典型的设备是集线器.该层主要规定了设备的电压或者端口等等一些列物理层面上的规定     数据链路层:该层数据以帧的方式进行传递,主要是两个 ...

  4. socket编程报异常java.io.EOFException

    一个客户端连接服务器的小程序,服务器端可以正常读取客户端发来的数据 但是当客户端关闭时,服务端也关闭了,并且抛出如下的异常: java.io.EOFException at java.io.DataI ...

  5. pythond对象、异常、反射的学习笔记

    python多继承,刚开始我是表示惊讶的,毕竟学的php,哪来的多继承?顶多也就是利用接口模拟多继承后者使用反射机制实现.那么还是来看看python的强大吧 1 首先,Python的类继承了多个类,那 ...

  6. Socket中的异常和参数设置

    1.常见异常 1.java.net.SocketTimeoutException . 这个异 常比较常见,socket 超时.一般有 2 个地方会抛出这个,一个是 connect 的 时 候 , 这 ...

  7. JavaScript Date 对象的异常现象-new Date('0001-01-01 00:00:00')

    Date 对象 Date 对象用于处理日期和时间. new Date() :Date 对象会自动把当前日期和时间保存为其初始值. 打开chrome的开发者工具,在Console敲下new Date() ...

  8. socket的几大异常以及其出现的原因

    1:我是模拟了一个客户端不断的向服务器发送消息,但是当某一时刻我把服务端断掉,客户端就出现了写异常 java.net.SocketException: Connection reset by peer ...

  9. C++异常 将对象用作异常类型

    通常,引发异常的函数将传递一个对象.这样做的重要有点之一是,可以使用不同的异常类型来区分不同的函数在不同情况下引发的异常.另外,对象可以携带信息,程序员可以根据这些信息来确定引发异常的原因.同时,ca ...

随机推荐

  1. Windows命令行(DOS命令)教程

    一.命令行简介 命令行就是在Windows操作系统中打开DOS窗口,以字符串的形式执行Windows管理程序. 在这里,先解释什么是DOS? DOS——Disk Operation System 磁盘 ...

  2. BOM之history

    history是JavaScript中BOM上的一个对象,其中存储了浏览器的历史记录 history存储简单过程 浏览器会将一个窗口中访问的网页进行记录,不管我们通过以下哪种方式改变页面,浏览器都会把 ...

  3. python 3 mysql 单表查询

    python 3 mysql 单表查询 1.准备表 company.employee 员工id id int 姓名 emp_name varchar 性别 sex enum 年龄 age int 入职 ...

  4. 剑指offer——二叉树的深度与平衡二叉树的判断

    通过后续遍历,可以减少重复访问 #include <iostream> #include <string> using namespace std; struct Binary ...

  5. 2.HelloWorld程序

    1.流程图 2./itcast0711/src/main/java/cn/itcast/a_helloworld/HelloWorld.java package cn.itcast.a_hellowo ...

  6. C# Stopwatch与TimeSpan详解

    http://www.cnblogs.com/newstart/archive/2012/09/21/2696884.html

  7. C++判断一个文件是否可以正确打开的代码

    /* fopen example */ #include <iostream> #include <conio.h> using namespace std; int main ...

  8. Codeforces 337D Book of Evil:树的直径【结论】

    题目链接:http://codeforces.com/problemset/problem/337/D 题意: 给你一棵树,n个节点. 如果一个节点处放着“罪恶之书”,那么它会影响周围距离不超过d的所 ...

  9. 分享知识-快乐自己:SpringBoot集成热部署配置(一)

    摘要: 热部署与热加载: ava热部署与Java热加载的联系和区别: 1):Java热部署与热加载的联系: 1.不重启服务器编译/部署项目 2.基于Java的类加载器实现 2):Java热部署与热加载 ...

  10. node.js+express+jade系列三:404错误的配置

    1:新建一个404.jade 2:在app.js后面配置如下代码 app.use(function(req, res){        res.render("404", {sta ...