- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验十四用SOCKET进行客户与服务器通信
实验十四 用SOCKET进行客户端与服务器通信
一 实验目的
1、 了解基于 Socket 的 C/S 编程的概念 ;
2、 掌握使用 Socket 开发程序的方法 ;
3、 了解常见的 Socket 开发模式的使用。
二 实验内容
在指定平台下,基于 SOCKET 开发一个简单的 C/S 通讯程序,使服务器端和客户机端能分别接收对方发送的文本信息并 显示。首先运行服务器端程 序,在 DOS 窗口对 应的目录下面输入“javac TalkServer.java”,编译成功输入“java TalkServer”,然后再打开一个新的 DOS 窗口,输入“javac TalkClient.java”,编译成功输入“java TalkClient”,
注意,首先运行的应该是 Server 端,然后才是 Client 端,顺序不能颠倒。如果先运行 Client 程序,那么 Server 端将无法找到服务器,就会出现异常,如图所示。
三 实验环境与分组
1 任意 JAVA 编程环境,推荐 eclipse;
2 两个同学一组,修改上个实验的服务器程序,并进行通讯实验。
四 实验原理
1、 Socket 概述
Socket(套接字)是一种独立于协议的网络编程接口,在 OSI 模型中,主要集中于会话层和传输层。Socket 接口定义了许多函数或例程,程序员可以用它们来开发 TCP/IP 网络上的应用程序。
Socket 最早源于 Unix,是一种在进程之间交换数据的机制。这个进程可以是一台计算机上的进程,也可以是通过网络连接起来的不同计算机上的进程。一个 Socket 套接字是通讯的一端,并有唯一的标识与之对应。一个正在使用的 Socket 套接字都有它的类型和与其相关的进程。当一个 Socket 连接建立以后,就可以在两个终端间传送数据,并且这里的数据交换是双向的。当其中一个终端关闭了当前的Socket 连接后,整个连接也同时中断。
Socket 接口在网络软件的开发上得到了广泛的应用,并被推广在多个操作系统平台上。Windows Sockets 是一个编程接口,它是在伯克利大学开发的套接字接口(Berkeley Socket Library)的基础上定义的。它包括了一组扩展件,以充分利用 Microsoft Windows 消息驱动的特点。规范的 1.1 版是在 1993年 1 月发行的,2.2 版在 1996 年 5 月发行。Windows 2000 支持 Winsock 2.2 版。在 Winsock2 中,支持多个传输协议的原始套接字,重叠 I/O 模型、服务质量控制等。
2、 客户-服务器编程模型
网络应用的标准模型是客户-服务器模型(Client/Server 模型,简称 C/S 模型)。这是一个不对称的编程模型,通讯的双方扮演不同的角色:客户和服务器。
一般发起通讯请求的程序被称为客户端,用户一般是通过客户端软件来访问某种服务。客户端应用程序通过与服务器建立联系,发送请求,然后接收服务器返回的内容。服务器则一般是等待并处理客户请求的应用程序。服务器通常由系统执行,在系统生存期间一直存在,等待客户的请求,并且在接收到客户的请求后,根据请求向客户返回合适的内容。它们之间的通讯过程如图所示。
请求
响应
响应
请求
这种 C/S 的通讯模型用途十分广泛,现在的大多数的网络程序都使用了这种模型。在服务器端,根据服务器处理请求方式的不同,服务器可以分为两种类型:
循环服务器
这种模式在同一时间只能处理一个客户端的请求。服务器在接收到客户端的请求后进行处理,在处理完毕后才继续等待下一个请求的到来。如果在处理过程中有新的客户请求,将只能等待。这种模式通常只能用于处理速度较快、处理逻辑比较简单的服务器程序的开发,如 Linux 的事件服务器。
并发服务器
这种模式在同一时间可以处理多个请求,服务器会建立多个处理客户请求的进程或者线程,在服务器接收到一个客户请求后,将按照一定的算法选择或者创建一个进程或者线程来处理这个客户请求,而服务器可以立即返回等待下一个客户请求的到来。显然这种处理模式可以尽量避免单处理模式中的对客户请求响应不及时的问题,但是这种模式需要占用较多的 CPU 处理时间和较多的系统资源,
您可能关注的文档
最近下载
- 人教版初中生物会考试卷及答案.pdf VIP
- 2023年海南师范大学软件工程专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 2023年四川省广元市中考地理试题卷(含答案详解).docx
- 2023年海南师范大学软件工程专业《数据结构与算法》科目期末试卷A(有答案).docx VIP
- 广西师范大学2020-2021学年《认知心理学》期末考试试卷(B卷)含参考答案.docx
- 羊常见疾病防治.ppt VIP
- 国开期末考试3987《Web开发基础》机考试题及答案(李老师第5套).pdf VIP
- 2024年怀化市靖州苗族侗族自治县六年级下学期小升初真题精选语文试卷含答案.doc VIP
- 2023年海南师范大学软件工程专业《计算机网络》科目期末试卷B(有答案).docx VIP
- 2025年社区工作者招聘考试题库及答案解析.docx VIP
文档评论(0)