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. MySQL——视图

    核心知识点: 1.视图定义 2.视图的好处:安全.节约资源.操作简单,数据的同一性 3.视图的基本操作 一.视图概论 视图是一个虚拟表,其内容由查询定义. 同真实的表一样,视图包含一系列带有名称的列和 ...

  2. PHP-内嵌式语言(转)(未看)

    PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写.PHP 是一种内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行 ...

  3. DEV开发之汉化

    public class Chinese { public Chinese() { Localizer.Active = new XtraEditors_CN(); GridLocalizer.Act ...

  4. Android电池驱动【转】

    本文转载自:http://blog.sina.com.cn/s/blog_66a6a5ec0100n6ej.html Android的电池的管理分为三个部分:Java部分,JNI部分以及kenel部分 ...

  5. 使用JobControl控制MapReduce任务

    代码结构 BeanWritable:往数据库读写使用的bean ControlJobTest:JobControl任务控制 DBInputFormatApp:将关系型数据库的数据导入HDFS,其中包含 ...

  6. html转义字符及css清除

    1. [代码][Java]代码     ​import java.util.HashMap;import java.util.Map; import org.apache.commons.lang3. ...

  7. DIV CSS 笔记

    /*针对谷歌浏览器内核支持的CSS样式*/ <style type="text/css"> @media screen and (-webkit-min-device- ...

  8. PHP获取一年中每个星期的开始和结束日期的方法

    这篇文章主要介绍了PHP获取一年中每个星期的开始和结束日期的方法,涉及php对日期操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了PHP获取一年中每个星期的开始和结束日期的方法. ...

  9. mfc设置鼠标状态OnSetCursor响应函数

    参考文章:1.https://bbs.csdn.net/topics/70084486 2.https://blog.csdn.net/wang15061955806/article/details/ ...

  10. stl_multiset.h

    stl_multiset.h // Filename: stl_multiset.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: ...