`
long_yu2
  • 浏览: 315270 次
社区版块
存档分类
最新评论

java 网络编程【4】 TCP详解及其相关实例

 
阅读更多

(1)简单的TCP服务程序。


(2)TCP服务器程序模型的编写要点


(3)TCP网络程序的工作原理




ServerSocket

public ServerSocket()
             throws IOException
创建非绑定服务器套接字。

抛出:
IOException - 如果打开套接字时发生 IO 错误。

ServerSocket

public ServerSocket(intport)
             throws IOException
创建绑定到特定端口的服务器套接字。端口 0 在所有空闲端口上创建套接字。

传入连接指示(对连接的请求)的最大队列长度被设置为 50。如果队列满时收到连接指示,则拒绝该连接。

如果应用程序已指定服务器套接字工厂,则调用该工厂的 createSocketImpl 方法来创建实际套接字实现。否则创建“普通”套接字。

如果存在安全管理器,则首先使用 port 参数作为参数调用其 checkListen 方法,以确保允许该操作。这可能会导致 SecurityException 异常。

参数:
port - 端口号;或者为 0,表示使用任何空闲端口。
抛出:
IOException - 如果打开套接字时发生 I/O 错误。
SecurityException - 如果安全管理器存在并且其checkListen 方法不允许进行该操作。
另请参见:
SocketImpl, SocketImplFactory.createSocketImpl(),setSocketFactory(java.net.SocketImplFactory), SecurityManager.checkListen(int)

ServerSocket

public ServerSocket(intport,
                    intbacklog)
             throws IOException
利用指定的 backlog 创建服务器套接字并将其绑定到指定的本地端口号。端口号 0 在所有空闲端口上创建套接字。

传入连接指示(对连接的请求)的最大队列长度被设置为 backlog 参数。如果队列满时收到连接指示,则拒绝该连接。

如果应用程序已指定服务器套接字工厂,则调用该工厂的 createSocketImpl 方法来创建实际套接字实现。否则创建“普通”套接字。

如果存在安全管理器,则首先使用 port 参数作为参数调用其 checkListen 方法,以确保允许该操作。这可能会导致 SecurityException 异常。

backlog 参数必须是大于 0 的正值。如果传递的值等于或小于 0,则使用默认值。

参数:
port - 指定的端口;或者为 0,表示使用任何空闲端口。
backlog - 队列的最大长度。
抛出:
IOException - 如果打开套接字时发生 I/O 错误。
SecurityException - 如果安全管理器存在并且其checkListen 方法不允许进行该操作。
另请参见:
SocketImpl, SocketImplFactory.createSocketImpl(),setSocketFactory(java.net.SocketImplFactory), SecurityManager.checkListen(int)

ServerSocket

public ServerSocket(intport,
                    intbacklog,
                    InetAddressbindAddr)
             throws IOException
使用指定的端口、侦听 backlog 和要绑定到的本地 IP 地址创建服务器。bindAddr 参数可以在 ServerSocket 的多宿主主机 (multi-homed host) 上使用,ServerSocket 仅接受对其地址之一的连接请求。如果bindAddr 为 null,则默认接受任何/所有本地地址上的连接。端口必须在 0 到 65535 之间(包括两者)。

如果存在安全管理器,则此方法使用 port 作为参数调用其 checkListen 方法,以确保允许该操作。这可能会导致 SecurityException 异常。

backlog 参数必须是大于 0 的正值。如果传递的值等于或小于 0,则使用默认值。

参数:
port - 本地 TCP 端口
backlog - 侦听 backlog
bindAddr - 要将服务器绑定到的 InetAddress
抛出:
SecurityException - 如果安全管理器存在并且其checkListen 方法不允许进行该操作。
IOException - 如果打开套接字时发生 I/O 错误。
从以下版本开始:
JDK1.1
另请参见:
SocketOptions, SocketImpl, SecurityManager.checkListen(int)

方法:

accept
public Socket accept()
throws IOException侦听并接受到此套接字的连接。此方法在连接传入之前一直阻塞。
创建新套接字 s,如果存在安全管理器,则使用 s.getInetAddress().getHostAddress() 和 s.getPort() 作为参数调用安全管理器的 checkAccept 方法,以确保允许该操作。这可能会导致 SecurityException 异常。




返回:
新套接字
抛出:
IOException - 如果等待连接时发生 I/O 错误。
SecurityException - 如果安全管理器存在并且其 checkAccept 方法不允许进行该操作。
SocketTimeoutException - 如果以前使用 setSoTimeout 设置了超时并且已到达超时值。
IllegalBlockingModeException - 如果此套接字具有关联的通道、通道处于非阻塞模式并且不存在准备接受的连接
另请参见:
SecurityManager.checkAccept(java.lang.String, int)

分享到:
评论

相关推荐

    深入Java Servlet网络编程

    第5章 Java Servlet中的网络编程 5. 1 Java套接字网络编程 5. 1. 1 InetAddress类 5. 1. 2 Socket类 5. 1. 3 给手机发送网上短信息 5. 2 Java网络编程中的高层类 5. 2. 1 URL类 5. 2. 2 URLConnection类 第6...

    socket 编程 网络编程资料大全 给力

    网络通信协议,网络通信基础知识,socket网络编程的一些基础知识,Socket网络编程学习笔记,网络编程总结,2011-学习资料大全:java_socket编程,学习网络编程的十个步骤,socket编程入门(经典版),Unix_网络编程...

    Java开发详解.zip

    031904_【第19章:Java网络编程】_TCP程序设计笔记.pdf 031905_【第19章:Java网络编程】_UDP程序设计笔记.pdf 032001_【第20章:Java新IO】_缓冲区与Buffer笔记.pdf 032002_【第20章:Java新IO】_通道(Channel)...

    TCP-IP详解卷1:协议

    1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 ...

    Java基于Socket实现网络编程实例详解

    本文主要给大家介绍的是Java基于Socket实现网络编程的实例,并给大家介绍了TCP与UDP传输协议,有需要的小伙伴可以来参考下

    精通并发与 netty 视频教程(2018)视频教程

    39_NIO中Scattering与Gathering深度解析 40_Selector源码深入分析 41_NIO网络访问模式分析 42_NIO网络编程实例剖析 43_NIO网络编程深度解析 44_NIO网络客户端编写详解 45_深入探索Java字符集编解码 46_字符集编解码...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    Java编程老鸟潜心写作,奉献高效率的Java学习心得 完全站在没有编程经验读者的角度,手把手教会读者学习Java 配16小时多媒体教学视频,高效、直观 一一击破Java入门可能会遇到的难点和疑惑 抽丝剥茧,层层推进,让...

    疯狂JAVA讲义

    学生提问:老师,我想学习Java编程,到底是学习Eclipse好呢,还是学习JBuilder好呢? 21 1.9 本章小结 22 本章练习 22 第2章 理解面向对象 23 2.1 面向对象 24 2.1.1 结构化程序设计简介 24 2.1.2 程序的三种...

    精通并发与netty视频教程(2018)视频教程

    42_NIO网络编程实例剖析 43_NIO网络编程深度解析 44_NIO网络客户端编写详解 45_深入探索Java字符集编解码 46_字符集编解码全方位解析 47_Netty服务器与客户端编码模式回顾及源码分析准备 48_Netty与NIO系统总结及NIO...

    精通并发与netty 无加密视频

    第42讲:NIO网络编程实例剖析 第43讲:NIO网络编程深度解析 第44讲:NIO网络客户端编写详解 第45讲:深入探索Java字符集编解码 第46讲:字符集编解码全方位解析 第47讲:Netty服务器与客户端编码模式回顾及源码...

    93个netty高并发教学视频下载.txt

    07_Netty的Socket编程详解;08_Netty多客户端连接与通信,09_Netty读写检测机制与长连接要素,10_Netty对WebSocket的支援;11_Netty实现服务器端与客户端的长连接通信;12_Google Protobuf详解;13_定义Protobuf文件...

    Java开发技术大全 电子版

    第2篇Java面向对象编程 第3章对象和类98 3.1面向对象的基本概念98 3.1.1对象98 3.1.2类99 3.1.3消息101 3.1.4面向对象的4个基本特征101 3.2类与对象104 3.2.1类的基本结构104 3.2.2类的声明104 3.2.3创建...

    几个重要的c程序源码.rar

    2012-06-11 15:28 13,921,775 Visual C++ 6.0 编程实例与技巧.pdf 2012-06-11 15:33 32,169 VMware+Workstation+7.1.4注册机.rar 2012-06-11 15:32 171,720 WebKit内核源代码分析(三).pdf 2012-06-11 15:31 215,654 ...

    疯狂Android讲义源码

     13.1 基于TCP协议的网络通信 477  13.1.1 TCP协议基础 477  13.1.2 使用ServerSocket创建  TCP服务器端 478  13.1.3 使用Socket进行通信 479  13.1.4 加入多线程 483  13.2 使用URL访问网络资源 488  ...

Global site tag (gtag.js) - Google Analytics