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 条评论
登录 后参与评论

相关文章

来自专栏菩提树下的杨过

Oracle:ODP.NET Managed 小试牛刀

“ODP.NET Managed”发布已经有一段时间了,近期正好有一个新项目,想尝试用一下,参考园子里的文章:《.NET Oracle Developer的福音...

2136
来自专栏coder修行路

paramiko模块,线程,进程

关于paramiko模块 paramiko是基于Python实现的ssh2远程安全连接,支持认证及密钥方式远程执行命令、文件传输,中间ssh代理等 parami...

2299
来自专栏Java3y

Lucene就是这么简单

什么是Lucene?? Lucene是apache软件基金会发布的一个开放源代码的全文检索引擎工具包,由资深全文检索专家Doug Cutting所撰写,它是一个...

34916
来自专栏Linux驱动

25.Linux-Nor Flash驱动(详解)

1.nor硬件介绍: ? 从原理图中我们能看到NOR FLASH有地址线,有数据线,它和我们的SDRAM接口相似,能直接读取数据,但是不能像SDRAM直接写入数...

2296
来自专栏北京马哥教育

经典!Python运维中常用的几十个Python运维脚本

本文由马哥教育Python自动化实战班4期学员推荐,转载自互联网,作者为mark,内容略经小编改编和加工,观点跟作者无关,最后感谢作者的辛苦贡献与付出。 fil...

3324
来自专栏deepcc

linux中nodejs后台运行工具forever

2718
来自专栏张戈的专栏

grep无法查找shell传过来的变量?先注意一下文本格式吧!

昨天,同事告诉我发现一个诡异的问题,grep 无法搜索 shell 中的变量,着实很惊讶。到他所说的服务器上试了下,还真是不行! 大概就是这样一个要求: ①、有...

3469
来自专栏java 成神之路

jvm 性能调优工具之 jmap

36612
来自专栏Web后台技术分享

MySQL锁表的快速定位和恢复

查看db当前在执行的任务,可以发现已经堆积了很多update,引起死锁的query一般就在第一个update/insert之前,一般是一个read or cre...

381
来自专栏xingoo, 一个梦想做发明家的程序员

Spark源码分析之Spark Shell(下)

继上次的Spark-shell脚本源码分析,还剩下后面半段。由于上次涉及了不少shell的基本内容,因此就把trap和stty放在这篇来讲述。 上篇回顾:S...

25010

扫码关注云+社区