- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 。。 * 。。 * 。。 第9章Socket编程 本章提要 ◆ 客户/服务器模型 ◆ Java编写客户应用程序 ◆ Java编写服务器应用程序 本章知识要点 客户/服务器模型 TCP/IP协议族 套接字(Socket) Java编写客户应用程序 Java编写服务器应用程序 9.1 客户/服务器模型 客户/服务器模型 客户/服务器模型的主要思想是要将应用程序的数据表示与数据处理和数据存储分开。 客户方主要是向服务器发出数据处理请求。 服务器方则是对数据处理请求进行接收,然后做出相应处理。 TCP/IP协议族 国际标准化组织(ISO)制订了开放系统互连(Open Systems Interconnection)参考模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 OSI参考模型 协议 协议就是约定,就是双方为了协调地做一件事情而共同遵循的规则。 Telnet、SMTP、HTTP、FTP……. 套接字(Socket) TCP/UDP IP/ICMP 数据链路层和物理层 TCP/IP协议族 套接字(Socket) 套接字包含主机地址与服务端口号。 在Internet中,主机地址就是客户程序或服务器程序所在的主机的IP地址。 端口与则是主机彼此通信时所有的通口 服务器 套接字 客户机 套接字 客户/服务器通信模式 著名端口所对应的应用 端口号 应用 21 FTP,传输文件 23 Telnet,远程登录 25 SMTP,邮件服务 67 BOOTP,提供引导时配置 80 HTTP,web服务 109 POP,远程访问邮件 Socket 类 Socket是支持TCP协议的基本类。 Socket类提供了一些进行流输入/输出的方法。 ServerSocket类 ServerSocket是一个用于监听客户请求的Internet服务器程序的类。 作为服务器方程序必须使用ServerSocket类。 ServerSocket实际上并不执行数据通信工作,它仅仅接收客户请求,然后为客户创建一个相对应的Socket对象。 9.2 创建服务器应用程序 案例——用户注册模块之服务器端 提出问题 我们要开发用户注册模块中的服务器端应用,以实现远程用户通过Applet将信息保存到中心数据中。服务器程序需要用Java来开发,以下是服务器功能: (1)服务器应能够接收远程客户机上发来的用户资料。 (2)服务器应能够将用户资料保存在customer.dat文件中。 ???????? (3)服务器是多线程的,能够同时满足多个客户机的访问。 (4)服务器在端口2001上运行。 分析问题 确定创建服务器所要使用的类 创建服务器 确定监听机制 确定数据通信机制 监听 请求二 线程一 线程二 线程三 请求一 请求三 服务器程序 设计模型图 解决问题 1.创建服务器所要使用的类 2.创建服务器类 3.确定监听机制 4.确定数据通信机制 5.完成服务器程序 6.验证程序 创建服务器所要使用的类 ServerSocket类 ServerSocket 请求 Socket 数据通信通道建立 客户 创建 Socket ocket 通信过程 方法 目的 ServerSocket(int port) 在指定端口建立一个服务器套接字。有多个请求时,来不及处理的请求存入队列。本构造函数构造的套接字存放连接请求的了列长为50。如果队列已满,到达的请求将被拒绝。 ServerSocket(int port,int backlog) 在指定端口建立一个服务器套接字。backlog是存放连接请求的队列长。 ServerSocket(int port,int backlog,InetAddress bindAddr) 在指定端口建立一个服务器套接字。backlog是存放连接请求队列长。本构造函数适用于有多个IP地址的主机,bindAddr指定仅接受对某一地址的连接。 Socket accept() 使服务器套接字监听客户连接并接收它。并创建一新的套接字与客户建立连接。 InetAddress getInetAddress() 返回服务器套接字的本地主机地址。 int getLocalPort() 返回正在监听的端口。 void close() 关闭服务器套接字。 String toString() 返回服务器套接字的IP地址和端口号。 synchronized int getSoTimeout() 返回SO_TIMEOUT的值。该变量用于设定超时限制。当其值大于0时,ac
文档评论(0)