JDK8中文文档——ServerSocket

类名

ServerSocket

所属包

java.net.ServerSocket

所有被实现的接口

Cloneable,AutoCloeable

直接父类

SSLServerSocket

类声明

public class ServerSocket extends Object implements Cloneable

类概述

这个类是用来实现服务端Socket的。

一个ServerSocket将会等待来自于网络的请求,当它收到请求后将会针对这些请求做出一些处理,然后给请求者返回处理的结果。

服务端Socket的实际工作由SocketImpl类的实例对象来进行。应用程序可以改变Socket工厂An application can change the socket factory that creates the socket implementation to configure itself to create sockets appropriate to the local firewall.

起始版本

JDK1.0

构造函数列表

ServerSocket()

这个函数将会创建一个未绑定的服务端Socket对象。

ServerSocket(int port)

这个函数将会创建一个绑定指定端口的服务端Socket对象。

ServerSocket(int port, int backlog)

这个函数将会创建一个绑定指定端口号和指定backlog数的服务端Socket对象。

PS:backlog是什么?

管理客户连接请求的任务是由操作系统来完成的。操作系统把这些连接请求存储在一个先进先出的队列中。许多操作系统限定了队列的最大长度,一般为50。当队列中的连接请求达到了队列的最大容量时,服务器进程所在的主机会拒绝新的连接请求。只有当服务器进程通过ServerSocket的accept()方法从队列中取出连接请求,使队列腾出空位时,队列才能继续加入新的连接请求。

对于客户进程,如果它发出的连接请求被加入到服务器的队列中,就意味着客户与服务器的连接建立成功,客户进程从Socket构造方法中正常返回。如果客户进程发出的连接请求被服务器拒绝,Socket构造方法就会抛出ConnectionException。

ServerSocket(int poet, int backlog, InetAddress bindAddr)

这个函数将会创建一个拥有指定端口、指定IP地址和指定backlog数的ServerSocket对象。

所有函数列表

Socket  accept ()

这个函数将会监听是否有客户端想要连接这个ServerSocket对象,若有的话就接收它。

void  bind(SocketAddress endpoint)

这个函数将会把一个指定的IP地址和端口号绑定到这个ServerSocket对象上。

void  bind(SocketAddress endpoint, int backlog)

这个函数将会把一个指定的IP和端口号绑定到这个ServerSocket对象上,与此同时,还将backlog数绑定到这个ServerSocket对象上。

void close()

这个函数将会关闭当前的这个Socket连接。

ServerSocketChannel  getChannel()

返回一个唯一的与当前Socket关联的ServerSocketChannel对象,如果有的话。

InetAddress  getInetAddress()

返回服务端Socket的IP地址。

int  getLocalPort()

返回当前Socket用来对外监听的端口号。

int  getReceiveBufferSize()

获得当前ServerSocket对象的SO_RCVBUF选项的值,这个值表示用来接收客户端Socket对象时会用到的缓冲区大小的建议值。

SocketAddress  getLocalSocketAddress()

返回当前Socket绑定的端点的地址。

boolean  getReuseAddress()

这个函数将会测试SO_REUSEADDR这个值是否可用。

int  getSoTimeout()

返回SO_TIMEOUT这个字段的值。

boolean  isBound()

返回当前ServerSocket对象的绑定状态

boolean  isClosed()

判断当前ServerSocket是否被关闭了。

void  setPerformancePreferences(int  connectionTime, int latecy, int  bandwidth)

为这个ServerSocket对象设置性能偏好。

void  setReceiveBufferSize(int size)

设置当前ServerSocket对象中SO_RECBUF字段的默认期望值,这个值是服务端Socket接收客户端Socket时候的缓冲区的大小。

static  void  setSocketFactory(SocketImplFactory  fac)

为程序设置服务端Socket的实现工厂。

void  setSoTimeout(int  timeout)

设置当前ServerSocket对象的SO_TIMEOUT字段的值,这个字段是连接超时时间,单位是毫秒。

String toString()

获取ServerSocket的IP、端口号。

to be continue……

每个函数的详细说明会陆续推出……

Java常用类的翻译也将陆续推出……

JDK8中文文档由“毕设帮”翻译——“毕业设计在线求助平台”

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏圆方圆学院精选

【刘文彬】RPC的基础:调研EOS插件http_plugin

原文链接:醒者呆的博客园,https://www.cnblogs.com/Evsward/p/httpPlugin.html

941
来自专栏云计算教程系列

使用GNU Screen管理持久终端会话

GNU Screen是一种与终端会话配合使用的工具,允许用户在断开连接后恢复会话。Screen可防止会话“超时”或断开SSH连接或本地终端仿真器。单个Scree...

1142
来自专栏玄魂工作室

看代码学安全(10)程序未恰当exit导致的问题

大家好,我们是红日安全-代码审计小组。最近我们小组正在做一个PHP代码审计的项目,供大家学习交流,我们给这个项目起了一个名字叫 PHP-Audit-Labs 。...

832
来自专栏Play & Scala 技术分享

Play Scala 2.5.x - Play Web开发基础

4058
来自专栏向治洪

MIDlet工作原理

题记 :  现在的J2ME用户已经是日益减少 , 开发也在转型! 无奈之下也不得不写下这系列文章来别了j2me ,也是对过去的一些总结吧!         ...

18010
来自专栏老马寒门IT

Node入门教程(6)第五章:node 模块化(上)模块化演进

node 模块化 JS 诞生的时候,仅仅是为了实现网页表单的本地校验和简单的 dom 操作处理。所以并没有模块化的规范设计。 项目小的时候,我们可以通过命名空间...

2714
来自专栏lhyt前端之路

模块化的一些小研究0.前言1.script标签引入2.AMD与CMD3.CommonJS与ES64.循环依赖5.webpack是如何处理模块化的

我们知道最常见的模块化方案有CommonJS、AMD、CMD、ES6,AMD规范一般用于浏览器,异步的,因为模块加载是异步的,js解释是同步的,所以有时候导致依...

1252
来自专栏Charlie's Road

<Solidity学习系列二>深入理解Solidity之二---Solidity源代码文件结构

版本Pragma 源文件可以(也应该)用所谓的版本注释来注释,以拒绝被编译为未来可能引入不兼容更改的编译器版本。 我们试图将这种变化保持在绝对最低限度,特别是引...

681
来自专栏散尽浮华

Saltstack自动化操作记录(2)-配置使用

之前梳理了Saltstack自动化操作记录(1)-环境部署,下面说说saltstack配置及模块使用: 为了试验效果,再追加一台被控制端minion机器192....

24711
来自专栏青玉伏案

设计模式(六):控制台中的“命令模式”(Command Pattern)

今天的博客中就来系统的整理一下“命令模式”。说到命令模式,我就想起了控制台(Console)中的命令。无论是Windows操作系统(cmd.exe)还是Linu...

1969

扫码关注云+社区