Windows网络编程一WinSock编程.doc
《Windows网络编程一WinSock编程.doc》由会员分享,可在线阅读,更多相关《Windows网络编程一WinSock编程.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、WinSock编程实验报告班 级:10网工三班 学生姓名:谢昊天 学号:1215134046实验目的与要求:实验目的1、了解WinsockAPI2、深刻领会Winsock编程原理3、学会使用Winsock创立简单的TCP效劳器以及客户机实验要求1. 整个通信过程参照TCP/IP通信方式;2. 实现整个TCP/IP通信的根本模型;3. 完成根本的界面设计与事件响应;4. 效劳器可以同时与多个用户对话,可以同时恢复多个用户;5. 保证信息传输的畅通;6. 效劳器可以依次与多个用户对话。实验内容与分析设计:编写一个基于某种I/O方法的TCP效劳器与TCP客户机:能够实现模拟C/S模型的通信方式,效劳
2、器端负责信息的接收,并能够返回给客户端相应的消息;客户机负责向效劳器发送信息。注:可以模拟教材95页面向连接的TCP Socket应用程序编程实例。实验步骤与调试过程:1.翻开Visual c+ 6.0编程环境;2.点击文件-新建、选择建立新的工程;选择Win32 Console Application选项建立工程名为“效劳器的一个空工程;3. 继续点击文件-新建、选择建立新的文件;选择C+ Source File选项建立在“效劳器工程下的名为“效劳器的文件;4.编辑源程序-调试;1定义头文件与常量,声明两个SOCKET对象,初始化SOCKET环境;2创立用于监听的SOCKET环境;3设置效劳
3、器SOCKET的地址,并绑定socket server 到本地地址,在socket server 上进展监听,而后调用accept()函数等待来自客户端的连接请求;4在效劳器与客户机之间发送与接收数据;5当效劳器程序接收到来自客户端的“quit字符串后,将退出循环并释放占用的资源;5.在组建选项中点击执行【效劳器.exe】或者Ctrl+F5执行程序;6.运行效劳器查看效劳器是否处于监听状态。7.再次翻开Visual c+ 6.0编程环境;8.点击文件-新建、选择建立新的工程;选择Win32 Console Application选项建立工程名为“客户端的一个空工程;9. 继续点击文件-新建、选
4、择建立新的文件;选择C+ Source File选项建立在“客户端工程下的名为“客户端的文件;10.编辑源程序-调试;1在主程序中定义头文件与常量并声明变量,初始化socket 环境并创立用于通信的socket;2设置socket地址并连接到效劳器;3在效劳器与客户机之间发送与接收数据;4当程序退出while循环时将释放占用的资源;11.在组建选项中点击执行【效劳器.exe】或者Ctrl+F5执行程序;12.。实验结果:1.实现了在效劳器与客户端之间发送与承受数据。2.运行效劳器后,效劳器处于监听状态3. 实现了承受来自客户端的请求。4.实现模拟C/S模型的通信方式,效劳器端负责信息的接收,并
5、能够返回给客户端相应的消息;客户机负责向效劳器发送信息。疑难小结:通过本次试验,了解了socketb编程的一些根底知识,学习到了用socket 编写 效劳器应用程序。学习到了设置效劳器socket 地址,用socket 编写客户端应用程序,以及如何承受来自客户端的请求。从而使我对TCP Socket效劳器应用程序有了进一步的了解,通过动手实现其TCP Socket效劳器在TCP端口9990上进展监听,实现CP Socket客户端自动连接到指定效劳器的TCP端口9990,然后提示用户输入向效劳器发送的字符串,更加深刻的理解了TCP Socket效劳器与客户端的特点。同时,在实验过程中,回忆书本上
6、的理论知识,稳固了我的知识。主要算法与程序清单:效劳器:#include #include #pragma comment(lib,WS2_32.lib)#define BUF_SIZE 64int main(int argc, TCHAR* argv)WSADATA wsd;SOCKET sServer;SOCKET sClient;int retVal;char bufBUF_SIZE;if(WSAStartup(MAKEWORD(2,2),&wsd) !=0)printf(WSAStartup failed !n);return 1;sServer = socket(AF_INET,SO
7、CK_STREAM,IPPROTO_TCP);if(INVALID_SOCKET =sServer)printf(socket failed !n);WSACleanup();return -1;SOCKADDR_IN addrServ;addrServ.sin_family = AF_INET; addrServ.sin_port = htons(9990);addrServ.sin_addr.S_un.S_addr = htonl(INADDR_ANY);retVal = bind(sServer,(const struct sockaddr*)&addrServ,sizeof(SOCKA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows 网络 编程 WinSock
限制150内