用 C 或 J AVA 语言编写客户端、服务器程序,实现基于TCP 或 UDP 的网络通信数据传
输服务,熟悉基于 TCP 或 UDP 的 Socket 编程原理。
建立在 TCP/IP 网络体系结构之上计算机网络实验环境。各计算机除了安装TCP/IP 软
件外,还安装了 TCP/IP 开发系统。计算机具备 Windows 环境中套接字 socket 的编程接口
(1)运行指导书中给出的参考程序,分析实验结果,并回答问题(1)-(3)
(2)根据给定参考程序修改代码,完善修改服务器和客户端的功能。并回答问题(4)
(1) 为什么在服务器和客户端要包含winsock2.h文件?
windows socket 的头文件,不包含该头文件,关于socket 编程的结构和函数等都
(2) 为什么在服务器和客户端程序中要加入#pragma comment(lib,"ws2_32.lib")
语句,如果不加会出现什么问题?
答:#pragma comment(lib, "Ws2_32.lib " )表示链接Ws2_32.lib这个库。 和在工程设
置里写上链入Ws2_32.lib的效果一样,不过这种方法写的 程序别人在使用你的代码
的时候就不用再设置工程settings了。
(3) 为什么在服务器和客户端程序中要使用WSAStartup函数,如果不用,程序会有
什么问题?
使用Socket 的程序在使用Socket 之前必须调用WSAStartup 函数。该函数的第
一个参数指明程序请求使用的Socket 版本,其中高位字节指明副版本、低位字
节指明主版本;操作系统利用第二个参数返回请求的Socket 的版本信息。当一
个应用程序调用WSAStartup 函数时,操作系统根据请求的Socket 版本来搜索
相应的Socket 库,然后绑定找到的Socket 库到该应用程序中。以后应用程序就