黑马程序员技术交流社区
标题:
socket学习
[打印本页]
作者:
小飞龙
时间:
2012-7-25 12:13
标题:
socket学习
学习Socket的时候,写的Socket和ServerSicket可以发送和接收消息,
一运行就会抛ConnectException,该怎么解决呢
作者:
乐峰
时间:
2012-7-25 12:22
java的异常是面向对象的。一个Java的Exception是一个描述异常情况的对象.当出现异常情况时,一个Exception对象就产生了,并放到异常的成员函数里。
Java的异常处理是通过5个要害词来实现的:try,catch,throw,throws和finally。在Java语言的错误处理结构由try,catch,finally三个块组成。其中try块存放将可能发生异常的Java语言,并治理相关的异常指针;catch块紧跟在try块后面,用来激发被捕捉的异常;finally块包含清除程序没有释放的资源,句柄等。不管try块中的代码如何退出,都将执行finally块。
Java语言可以不在方法中直接捕捉,而用throw语句将异常抛给上层的调用者。Throw语句就是来明确地抛出一个异常;首先你必需得到一个Throwable的实例句柄,通过参数传到catch中,或者采用new操作符来创建一个。
格式:throw new WhcaException(e.getMessage);
程序会在throw语句后立即终止,它后面的语句都不执行,然后在包含它的所有try块中从里到外寻找含有与其匹配的catch.
声明异常类
当throw语句被用在方法说明中时,throw有用throws代替。要害字throws用来标明一个方法可能抛出的各种异常。对大多数Exception子类来说,Java编译器会强迫你声明在一个方法中抛出的异常的类型。如下:
格式:type method_name(arg_list) throws WhcaException{
……
}
当程序员为提供一些特定的功能用Java类时,往往需要保证类之间有良好的关系,而且类之间的接口易于理解和实现,这是定义一个新的异常类。建议创建自己的异常类,便于维护,治理。
定义一个新的异常类
通常采用Exception作为异常类的超类,如:
package whca.common;
public class WhcaException extends Exception{
public WhcaException(){
}
public WhcaException(String s){
super(s);
}
}
以上三种你可以选择一种来处理异常,最佳选择是try{}catch{}finally{}
作者:
山水游客
时间:
2012-7-25 12:30
ConnectException,说明你Socket连接异常,可能是两个愿因:
一,你先运行的客户端。服务器还没启动,客户端自然连不上。
二,连接地址和端口号错误。找不到指定的服务器和端口也连不上。
作者:
李菁
时间:
2012-7-25 12:36
客户进程,如果发出的连接请求被加进服务器的中,说明客户与服务器的连接建立成功,客户进程从Socket构造方法中正常返回。
如果客户进程发出的连接请求被服务器拒尽,Socket构造方法就会抛出ConnectionException异常。
这个问题可能出在数据库端而不是程序的问题
解决方法:需要查询下是不是数据库服务已经关闭
作者:
周玉龙
时间:
2012-7-25 12:37
我觉得你的问题可能是代码没有错误,但是你的端口一直用着你刚开始用的端口,然后停止程序后,再来运行程序就出错。
如果是这样的话,那么就是系统还没有释放你的刚才用的端口。这个时候你只要换一个端口号,就能用了。
因为你刚才用的时候系统已经记住了你刚才用的端口号。你停止程序后你的操作系统其实还没有释放刚才的端口号。Socket是TCP
传输协议,也就是说面向连接的协议。你的端口号被占用了。需要你重写换一个端口号。或者重启电脑什么的也可以解决的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2