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

相关文章

来自专栏开发与安全

进程控制块PCB结构 task_struct 描述

注:本分类下文章大多整理自《深入分析linux内核源代码》一书,另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等,只是为了...

2158
来自专栏DT乱“码”

Memcached使用实例

package com.memcached.util; import java.io.BufferedWriter; import java.io.FileW...

1836
来自专栏一名合格java开发的自我修养

RPC原来就是Socket——RPC框架到dubbo的服务动态注册,服务路由,负载均衡演化

  序:RPC就是使用socket告诉服务端我要调你的哪一个类的哪一个方法然后获得处理的结果。服务注册和路由就是借助第三方存储介质存储服务信息让服务消费者调用。...

622
来自专栏Golang语言社区

http超时设置 golang

golang提供的http get、post请求是没有设置超时的,但实现生产环境一般都需要设置超时时间。 网上搜索,可以查询到通过设置http.Client中T...

3598
来自专栏用户2442861的专栏

详解HttpURLConnection

http://blog.csdn.net/woxueliuyun/article/details/43267365

51
来自专栏Java面试笔试题

运行时异常与受检异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误,只要程序设计得没有问题通常就不会发生。受检异常跟...

591
来自专栏跟着阿笨一起玩NET

EF实体中的修改

思路:先从ObjectContext取出实体,然后将前台传过来的DTO属性对应赋值到我们的实体上,然后调用ObjectContext的保证修改方法。

111
来自专栏Java3y

多线程三分钟就可以入个门了!

21711
来自专栏奔跑的蛙牛技术博客

servlet 理解大全

java创建的对象存放在堆中。java虚拟机会主动察觉不再使用的java对象,内存紧张的时候,垃圾收集器会启动清理垃圾,回收空间

712
来自专栏wOw的Android小站

[Objective-C]多线程和GCD

是指在系统中正在运行的一个应用程序。 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内。 比如同时打开QQ、Xcode,系统就会分别启动两个进程...

361

扫描关注云+社区