实验三、WINSOCK套接字编程实验报告
实验三、WINSOCK套接字编程实验报告
序号: 姓名: 学号: 成绩: 指导老师:
1.实验目的:
用C或JAVA语言编写客户端、服务器程序,实现基于TCP或UDP的网络通信数据传输服务,熟悉基于TCP或UDP的Socket编程原理。
2.实验环境:
建立在TCP/IP 网络体系结构之上计算机网络实验环境。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。计算机具备Windows环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。
3.实验指导:
参见套接字编程实验指导
4.实验步骤
(1)运行指导书中给出的参考程序,分析实验结果,并回答问题(1)-(3)
(2)根据给定参考程序修改代码,完善修改服务器和客户端的功能。并回答问题(4)-(5)
5.实验结果分析
(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库到该应用程序中。以后应用程序就