创建Socket

来源:互联网 发布:天金加银软件 编辑:程序博客网 时间:2024/05/16 15:29

构造方法:

除了默认的无参构造函数,其他函数都试图与服务器建立连接,如果成功,则返回Socket对象,如果失败,则抛出异常。

设置连接超时:

1
2
3
Socketsocket=newSocket();
SocketAddressremoteAddr=newInetSocketAddress("localhost",8000);
socket.connect(remoteAddr,60000);

 设置超时需要使用无参数的Socket,然后指定需要连接的服务器地址和端口,最后使用connect方法连接,如果超时,将打印SocketTimeoutException。设置为0永不超时。

设置服务器地址:

除了不带参数的构造方法,其它构造方法都需要在参数中设定服务器的地址,包括服务器的IP地址或者主机名,以及端口。

InetAddress类表示了IP地址的抽象,使用getByName(String name)的静态方法可以将4字节IP地址和域名转换为InetAddress。

设置客户端地址:

默认情况下,客户端的IP地址来自客户程序所在的主机,客户端的端口由操作系统随机分配。Socket的两个构造方法允许显式声明客户端地址和端口,这适用于一台主机拥有多个IP地址的情况。

在使用不带参的构造函数时,为了绑定本地IP地址端口,可以使用socket.bind()方法。

考虑抛出异常:

1. UnknownHostException

无法识别主机名字或IP地址。

2. ConnectException

没有服务器进程监听该接口,或者服务器进程拒绝连接(因为服务器接受的连接端口数已满,不能接受新的连接)

3. SocketTimeoutException

客户端等待连接超时,因为设置了超时的原因

4. BindException

本地IP地址设置错误或者设置的端口已经被占用

 

 

0 0
原创粉丝点击