Java socket异常

分类: Java 2013-07-15 22:38 981人阅读 评论(0) 收藏 举报

目录(?)[+]

使用Java socket编写程序时,通常会遇到几种种异常:BindException、UnknownHostException、ConnectException、SocketTimeoutException。

BindException

会发生在Socket或ServerSocket的bind()操作中,如果无法与本机指定的IP地址或端口绑定,就会抛出此异常。

有两种情况:

  • 指定的IP地址不在主机上
一台主机上可以装N个网卡,可以有多个IP地址,在绑定的时候需要指定绑定到哪一个IP地址上,如果指定的IP地址不在当前主机上,会抛出异常。
  • 指定的port已被占用

UnknownHostException

connect的时候,如果指定的主机名或IP地址无法识别,就会抛出此异常。

ConnectException

发生在connect中,有两种情况:

  • 服务器没有监听指定的端口
  • 服务器socket指定的backlog队列已满
两种情况的异常信息相同:
  1. java.net.ConnectException: Connection refused: connect
  2. at java.net.PlainSocketImpl.socketConnect(Native Method)
  3. at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
  4. at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
  5. at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
  6. at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
  7. at java.net.Socket.connect(Socket.java:529)
  8. at java.net.Socket.connect(Socket.java:478)

SocketTimeoutException

connect方法可以指定超时时间,如果在timeout之间没有能连接成功,就会抛出此异常

Java socket异常的更多相关文章

  1. Java Socket 异常 Connection reset

    最近使用Java做Socket客户端,与C的Socket服务端交互.遇到问题:现象是可以从服务端接受小数据,但是如果接受大数据,总是遇到Connection reset的异常:如果把服务端和客户端放到 ...

  2. JAVA Socket连接服务器时可能抛出的异常

    1.UnknownHostException:host(非ip)无法识,就会报该异常,www.google.com.hk这个虽然也ping不通,但是不会报该错,因为他是一个确实存在的域名.他会报Con ...

  3. JAVA Socket超时浅析

    JAVA Socket超时浅析 套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的"终端".针对一个特定的连接,每台机器上都有一个"套接字&q ...

  4. Java Socket编程(转)

    Java Socket编程 对于Java Socket编程而言,有两个概念,一个是ServerSocket,一个是Socket.服务端和客户端之间通过Socket建立连接,之后它们就可以进行通信了.首 ...

  5. Java Socket 网络编程心跳设计概念

    Java Socket 网络编程心跳设计概念   1.一般是用来判断对方(设备,进程或其它网元)是否正常动行,一 般采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经当掉.用于 ...

  6. Java Socket发送与接收HTTP消息简单实现

    在上次Java Socket现实简单的HTTP服务我 们实现了简单的HTTP服务,它可以用来模拟HTTP服务,用它可以截获HTTP请求的原始码流,让我们很清楚的了解到我们向服务发的HTTP消息的结 构 ...

  7. Java Socket常见异常处理 和 网络编程需要注意的问题

    在java网络编程Socket通信中,通常会遇到以下异常情况: 第1个异常是 java.net.BindException:Address already in use: JVM_Bind. 该异常发 ...

  8. Java Socket(2): 异常处理

    1 超时 套接字底层是基于TCP的,所以socket的超时和TCP超时是相同的.下面先讨论套接字读写缓冲区,接着讨论连接建立超时.读写超时以及JAVA套接字编程的嵌套异常捕获和一个超时例子程序的抓包示 ...

  9. [ 转载]JAVA Socket超时浅析

    JAVA Socket超时浅析 转载自 http://blog.csdn.net/sureyonder/article/details/5633647 套接字或插座(socket)是一种软件形 式的抽 ...

随机推荐

  1. Django项目之【学员管理系统】

    Django项目[学员管理系统] 项目规划阶段 项目背景 现实生活中,特别是在学校,传统的excel统计管理学员信息的方式已经无法满足日渐增长的业务需求. 因此需一套方便易用的“学员管理系统”,来提高 ...

  2. 24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作

    重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/37596763 网格动作类似于动作特效,能够实现翻转. ...

  3. Linux入门基础(三)——系统命令

  4. Android环境下通过C框架层控制WIFI【转】

    本文转载自:https://blog.csdn.net/edw200/article/details/52192631 本人是从事Linux嵌入式开发的,安卓wifi控制在安卓JAVA层已经做得非常成 ...

  5. 介绍 Java 的内存泄漏

    java最明显的一个优势就是它的内存管理机制.你只需简单创建对象,java的垃圾回收机制负责分配和释放内存.然而情况并不像想像的那么简单,因为在Java应用中经常发生内存泄漏.脚本代码 本教程演示了什 ...

  6. SpringBoot_Exception_01_No plugin found for prefix 'spring-boto' in the current project

    一.异常现象 spingbott项目在eclipse中执行maven命令:spring-boot:run, 出现异常: No plugin found for prefix 'spring-boto' ...

  7. 使用OGNL表达式

    OGNL表达式(#号的用法) 用法1:访问OGNL上下文和Action上下文,#相当于ActionContext.getContext() 1.如果访问其他Context中的对象,由于他们不是根对象, ...

  8. 数据可视化入门之show me the numbers

           数据的可视化一直是自己瞎玩着学,近来想系统的学数据可视化的东西,于是搜索资料时看到有人推荐<show me the numbers>作为入门. 由于搜不到具体的书籍内容,只能 ...

  9. arm-linux-gcc4.4.3编译busybox-1.25.0

    系统环境: 1.操作系统:Ubuntu16.04 2.交叉编译工具链:arm-linux-gcc4.4.3 3.busybox源码包:busybox-1.25.0 一.修改Makefile配置 首先解 ...

  10. HihoCoder1650 : 扁平化管理([Offer收割]编程练习赛38)(二分)

    描述 小Hi的公司包括CEO在内一共有N名员工.这N名员工的上下级关系形成树形结构,CEO处于树根,普通员工处于叶子节点. 现在公司希望管理扁平化,要求树形结构中的层级不超过L层.此外,假设A是B的直 ...