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;
package com.asiaInfo.caozg.ch_01;

import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress; /**
* @Authgor: gosaint
* @Description:
* @Date Created in 14:55 2018/1/13
* @Modified By:socket相关的构造方法
*/
public class SocketContructor {
public static void main(String[] args) throws IOException{
Socket socket=new Socket();
// 设置连接的端口和ip
SocketAddress address=new InetSocketAddress("localhost",8000);
// 连接指定的socketAddress,并且设置超时时间
socket.connect(address,60000);
}
}
接下来我们看看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
    连接拒绝异常:就是上述代码,不可以连接这个指定的地址;

package com.asiaInfo.caozg.ch_01;

import java.io.IOException;
import java.net.*; /**
* @Authgor: gosaint
* @Description:
* @Date Created in 15:09 2018/1/13
* @Modified By:socket的常见异常
*/
public class IOExceptionSocket {
public static void main(String[] args) {
String host="localhost";
int port=25;
// 如果数组的长度大于1,那么将第一个元素赋值给host,第二个元素赋值给port
if(args.length>1){
host=args[0];
port=Integer.parseInt(args[1]);
}
System.out.println("==========");
new IOExceptionSocket().connect(host,port);
} private void connect(String host, int port) {
//根据传递的host和port构建连接的地址
SocketAddress address=new InetSocketAddress(host,port);
Socket socket=null;
String result="";
try {
long begin=System.currentTimeMillis();//开始连接时间
socket=new Socket();
socket.connect(address,20000);
long end=System.currentTimeMillis();//结束时间
result=(end-begin)+"ms";
}catch (BindException e){
result="本地地址和端口绑定异常";
}catch (UnknownHostException e){
result="不知道的端口异常";
}catch (ConnectException e){
result="连接异常";
}catch (SocketTimeoutException e){
result="连接超时异常";
}catch (IOException e){
result="IO异常";
}finally {
try {
if(socket!=null)socket.close();
}catch (IOException e){
e.printStackTrace();
}
}
System.out.println(address+":"+result);
}
}

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. JETSON TK1 ~ 刷机和克隆固件

    1:PC端的ubuntu. 要求必须是正常系统,不可以使用虚拟机.由于烧写过程采用刷机模式,虚拟机刷机易导致刷机问题. 2:驱动包.文件系统和源码下载 1.Driver package(驱动包,相当于 ...

  2. 每天一个Linux命令(34)grep命令

          grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具 ...

  3. python编写脚本应用实例

    这里主要记录工作中应用python编写脚本的实例.由于shell脚本操作数据库(增.删.改.查)并不是十分直观方便,故这里采用python监控mysql状态,然后将状态保存到数据库中,供前台页面进行调 ...

  4. 关于ansible变量的一个问题

    ansible-playbook 使用with_items 时 items中 如果有变量 {} 外面可以用 “” items中 如果都是固定值,没有用到变量,{}最外面不要加 “” ,不然报错,mmp

  5. HDU 4714 Tree2cycle:贪心

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4714 题意: 给你一棵树,添加和删除一条边的代价都是1.问你将这棵树变成一个环的最小代价. 题解: 贪 ...

  6. eclipse导入jar包连接mysql

    Eclipse中导入 mysql--conncetor --java--jars  方法一:在工程项上右击,点Build Path->Configure Build Path-->Libr ...

  7. django 链接地址匹配流程

    前提: 代码结构 步骤一: 下面为某个网页的链接地址 <body> {% if latest_article_list %} <ul> {% for article in la ...

  8. Centos7部署NFS

    server1:192.168.1.189   ###客户端 server2:192.168.1.190    ##服务端 1.首先创建共享目录. mkdir -p /data/share 安装nfs ...

  9. Selenium-几种等待方式

    强制等待 一直使用的time.sleep(5),可以放在任意地方,不好的地方,不太准确确定时间 隐形等待 driver.implicitly_wait(5) 设置了一个最长等待时间,如果在规定时间内网 ...

  10. jQuery插件--图片文字向上向左循环滚动

    需要引用jquery 调用非常简单: 一. 向上滚动 $(".scroll_two").jScroll({vertical: true}); <div class=" ...