1、实验一 SOCKET基本编程1、 实验目的1、 掌握使用LINUX环境下GCC编译器的基本方法;2、 掌握SOCKET套接字的基本编程模板;3、 掌握套接字基本编程,掌握点分十进制和网络二进制IP地址之间的转换。4、 通过使用gethostbyname和gethostbyaddr来获取本地和远程用户的地址信息。2、 实验要求1、 认真阅读和掌握本实验相关的知识点。2、 上机编写运行本程序。3、 保存和打印出程序的运行结果,并结合程序进行分析。3、 注意事项:在LINUX系统上为每个用户创建一个目录,专门用于编译和运行实验程序。实验二 服务器与单客户的连接处理1、 实验目的1 掌握单用户客户端跟
2、服务器的连接和数据交互及处理。2、 实验要求1 认真阅读和掌握本实验的相关知识点。2 上机编写并运行本程序。3 保存和打印出程序的运行结果,并结合程序进行分析。3、 实验内容客户端:1 从命令行读入服务器的IP地址;并连接到服务器;2 循环从命令行读入一行字符串,并传递给服务器,由服务器对字符串反转,并将结果返回客户程序;3 客户程序显示反转后的字符串;服务器端:4 接收客户的连接请求,并显示客户的IP地址和端口号;5 接收客户传来的字符串,反转后传递给客户;实验三 多进程服务器设计1、 实验目的1 掌握多进程服务器的知识。2 掌握多进程程序的编写方法。2、 实验要求1 认真阅读和掌握本实验的
3、相关知识点。2 上机编写并运行程序。3 保存和打印出程序的运行结果,并结合程序进行分析。3、 实验内容1、服务器等待客户连接,连接成功后向客户发送欢迎信息,接着接收该客户的名字并显示,然后接收来自客户的信息(字符串),将该字符串反转,并将结果送回客户。要求服务器具有同时处理多个客户的能力。 2、客户首先与服务器连接,接着接收用户输入客户的名字,将该名字发送给服务器,然后接收用户输入的字符串,并发送给服务器,然后接收服务器返回的经处理后的字符串,并显示之。当用户输入Ctrl+D,终止连接并退出。实验四 多线程服务器设计1 实验目的1 掌握多线程服务器知识2 掌握有关多线程程序的编写方法;2 实验
4、要求1 认真阅读和掌握本实验的相关的知识点。2 上机编写并运行本程序。3 保存和打印出程序的运行结果,并结合程序进行分析。3 实验内容1、服务器等待客户连接,连接成功后向客户发送欢迎信息,接着接收该客户的名字并显示,然后接收来自客户的信息(字符串),将该字符串反转,并将结果送回客户。要求服务器具有同时处理多个客户的能力。 2、客户首先与服务器连接,接着接收用户输入客户的名字,将该名字发送给服务器,然后接收用户输入的字符串,并发送给服务器,然后接收服务器返回的经处理后的字符串,并显示之。当用户输入Ctrl+D,终止连接并退出。实验五 线程专用数据TSD实现1 实验目的1 掌握多线程服务器知识;2
5、 掌握有关线程专用数据TSD程序的编写方法;2 实验要求3 认真阅读和掌握本实验的相关的知识点。4 上机编写并运行本程序。5 保存和打印出程序的运行结果,并结合程序进行分析。3 实验内容1、服务器等待客户连接,连接成功后显示客户地址,接着接收该客户的名字并显示,然后接收来自客户的信息(字符串),将该字符串反转,并将结果送回客户。要求服务器具有同时处理多个客户的能力。在每个用户退出时要显示该用户输入的所有信息2、客户首先与服务器连接,接着接收用户输入客户的名字,将该名字发送给服务器,然后接收用户输入的字符串,并发送给服务器,然后接收服务器返回的经处理后的字符串,并显示之。当用户输入Ctrl+D,终止连接并退出。实验六 实现NTP网络授时客户端1 实验目的1 利用UDP协议实现NTP网络授时服务器;2 使用select在NTP客户端中实现I/O复用;2 实验要求1 认真阅读和掌握本实验的相关的知识点。2 上机编写并运行本程序。3 保存和打印出程序的运行结果,并结合程序进行分析。3 实验内容1、阅读NTP协议,使用UDP连接NTP服务器,构建NTP协议包,向服务器发送客户数据,发送成功后显示发送数量,接收服务端的返回信息,要求客户端具有多路I/O复用的能力。只在数据接受完毕后读取数据。2、根据NTP协议解析服务器返回的信息,从中获得服务器的准确时间,然后更新本地系统时间。6