实验十四用SOCKET进行客户与服务器通信.docVIP

  • 12
  • 0
  • 约2.59千字
  • 约 5页
  • 2017-08-20 发布于北京
  • 举报

实验十四用SOCKET进行客户与服务器通信.doc

实验十四 用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 处理时间和较多的系统资源,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档