简单的客户/服务器程序设计与实现
实验目的及要求:
1、熟悉
C
编程环境。
2、熟悉 Socket 编程原理,掌握简单的套接字编程。
实验设备:
硬件:PC 机
软件:CodeBlocks
实验内容及步骤:
什么是 Socket?
Socket 英文直译为“孔或插座”,也称为套接字。用于描述 IP 地址和端口号,是一种进程
间的通信机制。你可以理解为 IP 地址确定了网内的唯一计算机,而端口号则指定了将消息发送
给哪一个应用程序(大多应用程序启动时会主动绑定一个端口,如果不主动绑定,操作系统自动
为其分配一个端口)。
Socket 的类型
Stream:一种流式 Socket,针对于面向连接的 TCP 服务应用,安全,但效率低。(本文重
点)
Datagram:数据报式的 Socket,针对于无连接的 UDP 服务应用,不安全(丢失、顺序混乱,
往往在接收端要分析完整性、重排、或要求重发),但效率高。
Socket 程序一般应用模式及运行流程
服务器端会启动一个 Socket,开始监听端口,监听客户端的连接信息,我们称之为 Watch
Socket。
客户端 Socket 连接服务器端的监听 Socket,一旦成功连接,服务器端会立刻创建一个新的
Socket 负责与客户端进行通信,之后,客户端将不再与 Watch Socket 通信。
Watch Socket 继续监听可能会来自其他客户端的连接。
上述过程就像是实现了一次三方会谈。服务器端的 Socket 至少会有 2 个。一个是 Watch
Socket,每成功接收到一个客户端的连接,便在服务器端创建一个通信 Socket。客户端 Socket 指
定要连接的服务器端地址和端口,创建一个 Socket 对象来初始化一个到服务器的 TCP 连接。
编写用 TCP 协议实现的 Client 端和 Server 端程序并调试通过。
程序分两部分:客户程序和服务器程序。
工作过程是: 服务器首先启动,它创建套接字之后等待客户的连接;客户启动后创建套接
字,然后和服务器建立连接;建立连接后,客户接收键盘输入,然后将数据发送到服务器,服务
器收到到数据后,将接收到的字符在屏幕上显示出来。或者服务器接收键盘输入,然后将数据发
送到客户机,客户机收到数据后,将接收到的字符在屏幕上显示出来。
评论0
最新资源