Socket 、ServerSocket 常用方法简介

 

 

Socket,ServerSocket 用于TCP/IP协议

 

(1)Socket:

 

1.Socket 最常用构造方法:

<1>:public Socket(String host,int port);

host是连接所需服务器的名称或者ip地址 , port是端口号

 

2. 最常用的两个方法:

<1>:public OutputStream getOutputStream()

返回一个输出流,进行数据的传递;可以把返回的输出流进行再包装,传送数据更为方便

<2>:public InputStream getInputStream()

返回一个输入流,进行数据的读取;也可以把输入流进行包装,读取数据时更为快捷

3. 获取Socket的信息:

<1>:public InetAddress getInetAddress()

获得服务器的IP地址

<2>:public int getPort()

获得服务器的端口(一般由服务器随机设置的端口,与服务器端当初建立的时候端口不一致,稍微注意)

<3>:public InetAddress getLocalAddress()

获取本地的地址

<4>:public int getLocalPort()

获取本地的端口

 

4. 关闭socket的连接(很重要,如果一个连接结束之后,不再使用,一定记着关闭,否则服务器就会负载过重造成崩溃)

<1>:public void close()

关闭与服务器的连接

5. 设置socket的选项,一些常用的配置

<1>:public void setTcpNoDelay(boolean on)

默认为false,会先把数据缓存,到一定数量后一起发送;

如果设为true,则会立即发送数据,常用作游戏设计中,服务器需要快速的得到客户端的响应

<2>:public void setReuseAddress(boolean on)

当接收方的close()方法关闭socket时,网络上还有没发送到这个socket的数据,那么底层的socket不会立即释放本地端口,

会等待一段时间,确保收到了网络上收到的数据,然后再释放端口;当在这个时间段里,又重新使用这个端口,会发送异常,如果设置

属性为true,则会立即关闭底层socket,但是设置这个属性时,不能在创建socket的时候指定host,port;

<3>:public void setSoTimeout(int timeout)

设置接受数据时的等待超时时间

<4>:public void setReceiveBufferSize(int size)

设置接收数据的缓冲区的大小

<5>:public void setSendBufferSize(int size)

设置发送数据缓冲区的大小

(2):ServerSocket

1. 构造函数

<1>public ServerSocket(int port)

port:指定端口号

<2>public ServerSocket(int port,int backlog)

port是端口号,backlog,指定请求队列的长度

2. 最常用的一个方法

<1>:public Socket accept()

接受一个客户的请求,很重要的一个方法,建立与客户的联系;

是一个阻塞方法,如果没有用户的请求,会一直等待

3.  获取一些信息

<1>:public InetAddress getInetAddress()

<2>:public int getLocalPort()

4. ServerSocket选项

<1>public void setSoTimeout(int timeout)

· 设置等待客户连接的超时时间

<2>public void setReuseAddress(boolean on)

设置是否允许重用服务器锁绑定的地址

<3>public void setReceiveBufferSize(int size)

设置接受数据的缓冲区的大小

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值