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

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

2、ConnectException:一般是ip或者host或者域名是通的,但是端口不通,就会报该错。另外如果域名存在,但是网络如果做了限制,也会报该错的。如果服务端做了连接数的限制,如果客户端同时连接的过多的时候也会报该错。

设置服务端连接数的构造方法如下:public ServerSocket(int port, int backlog, InetAddress bindAddr)。其中backlog就是客户端最多同时连接的个数限制参数。

3、SocketTimeoutException:该异常在我的博客(JAVA Socket无参构造方法的使用)介绍过。

4、BindException:一般情况下是端口被占用,再次使用该端口的时候,就会报该错。

时间: 2024-10-12 05:06:56

JAVA Socket连接服务器时可能抛出的异常的相关文章

当访问EventLog时,抛出SecurityException

当调用EventLog.SourceExists("source1")时,抛出一下异常 System.Security.SecurityException was unhandled  HResult=-2146233078  Message=The source was not found, but some or all event logs could not be searched.  Inaccessible logs: Security.  Source=System  S

java 检查抛出的异常是否是要捕获的检查性异常或运行时异常或错误

/** * Return whether the given throwable is a checked exception: * that is, neither a RuntimeException nor an Error. * @param ex the throwable to check * @return whether the throwable is a checked exception * @see java.lang.Exception * @see java.lang

有时候在操作Session时,系统会抛出如下异常:java.lang.IllegalStateException: Cannot create a session after the response has been committed

有时候在操作Session时,系统会抛出如下异常 java.lang.IllegalStateException: Cannot create a session after the response has been committed 原因1: Session 的创建语句: HttpSession seesion = request.getSession(); 之前有Response的输出语句. 应该把HttpSession seesion = request.getSession(); 放

捕获Java线程池执行任务抛出的异常

Java中线程执行的任务接口java.lang.Runnable 要求不抛出Checked异常, public interface Runnable { public abstract void run();} 那么如果 run() 方法中抛出了RuntimeException,将会怎么处理了? 通常java.lang.Thread对象运行设置一个默认的异常处理方法: java.lang.Thread.setDefaultUncaughtExceptionHandler(UncaughtExce

Android客户端通过Socket连接服务器

Android客户端通过Socket连接服务器. Android互联网项目中,绝大部分都有连接远程服务器的需求,连接的方式有多种,可以是TCP的方式,当然也可以通过Socket的方式. 相对于TCP的方式,Socket的方式略显的较为原始,对于客户端来说,复杂度反而比TCP的方式还要高一些,毕竟TCP的连接有现成的框架可以使用, 比如Spring等. 而使用socket方式这些工作完全需要客户端来做,也增加了客户端的工作量,不过凡事有利弊,通过socket的方式,流量上 相对于TCP等的方式更加

【转】远程桌面连接服务器时,键盘不能正常打字

远程桌面连接服务器时,键盘不能正常打字.此时把windows自带的小键盘打开后,此时再用键盘就能正常输入. 打开小键盘的方法: 1.运行行输入:osk 2. 开始-附件-轻松访问-屏幕键盘.OK     另一种说法: 一直在使用远程桌面连接WinXP操作系统,发现一个很烦的问题,经常发现某些时间,输入的按键变成了快捷键. 如弹出“辅助功能选项”.某些程序被快捷启动.按e出现资源管理器等. 只能重新启动远桌面的机器或者本机来解决这个问题. 后来经过总结发现,按e会出现资源管理器,相当于e变成了Wi

java修改集合抛出ConcurrentModificationException异常

测试代码为: public static void main(String[] args) { List<String> strList = new ArrayList<String>(); strList.add("1"); strList.add("2"); strList.add("3"); strList.add("4"); for(String str:strList){ if(str.equ

SVN使用svn+ssh协议连接服务器时重复提示输入密码 解决办法

TortoiseSVN使用svn+ssh协议连接服务器时重复提示输入密码 当使用svn+ssh协议连接svn服务器时,ssh会提示请求认证,由于不是svn客户端程序来完成ssh的认证,所以不会缓存密码. 而svn客户端通常会建立多个版本库的连接,当密码没有缓存的时候,就会重复不断的提示输入密码. 解决办法是在TortoiseSVN的网络设置里指定SSH客户端使用TortoisePlink.exe并增加-pw password参数和-l username参数. 最终的命令行如下: “C:Progr

在Oracle中更新数据时,抛出:ORA-01008: not all variables bound

在Oracle中更新数据时,抛出了一个 :ORA-01008 not all variables bound, 我的理解是不是所有的变量/参数都有边界,不懂: 后来知道了,原来是“不是所有变量/参数都确定”, 就是有些变量没有指定,缺少变量参数, 最后发现是因为在写三层时少写了一个"new OracleParameter(":ID",userinfo.ID);" 导致的.