实验3 :计算机网络实验——网络编程 1 一、实验目的: (1)熟悉和掌握网络编程的基本方法和步骤; (2)进一步理解 client/serv er 交互模式; (3)加深学生对于网络协议概念的理解以及协议的设计和实现方法
二、实验任务: 使用任意网络编程语言(Jav a、C、VB、Delphi 等)编写网络选课模拟程序,它由 client 和 serv er两部分组成,client 和 serv er 之间的通信基于 TCP 协议
实现数据的收发
三、网络编程: 大多数网络应用程序都遵从 client/serv er 交互模型
该模型中,服务器应用是一种专门用来提供某一种服务的程序,它被动地等待通信,而客户应用主动地启动通信,请求服务器的服务
服务器程序既可以接收信息也能发送信息,还可以成为客户
TCP/UDP 赋予每个服务一个唯一的协议端口号
服务器程序通过协议端口号来指定它所提供的服务,然后被动地等待通信
客户在发送连接请求时,必须说明服务器程序运行主机的 IP 地址和协议端口号来指定它所希望的服务
服务器端计算机通过此端口号将收到的请求转向正确的服务器程序
大多数网络编程语言都提供或者使用控件封装了套接字应用程序接口(Socket API),应用程序通过套接字接口调用来实现和传输层交互
用户目前可以使用两种套接口,即流套接字 TCP 和数据报套接字 UDP
流式套接字定义了一种可靠的面向连接的服务,提供了双向的,有序的,无重复并且无记录边界的数据流服务
数据报套接字定义了一种无连接的服务,支持双向的数据流,但并不保证是可靠,有序,无重复的
也就是说,一个从数据报套接字接收信息的进程有可能发现信息重复了,或者和发出时的顺序不同
数据报套接字的一个重要特点是它保留了记录边界
套节字 API 主要包括表 1 所示的接口
使用面向连接的套接字编程,通过图 2 来