欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    Windows网络编程一WinSock编程.doc

    • 资源ID:57997113       资源大小:27.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Windows网络编程一WinSock编程.doc

    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模型的通信方式,效劳器端负责信息的接收,并能够返回给客户端相应的消息;客户机负责向效劳器发送信息。注:可以模拟教材95页面向连接的TCP Socket应用程序编程实例。实验步骤与调试过程:1.翻开Visual c+ 6.0编程环境;2.点击文件->新建、选择建立新的工程;选择Win32 Console Application选项建立工程名为“效劳器的一个空工程;3. 继续点击文件->新建、选择建立新的文件;选择C+ Source File选项建立在“效劳器工程下的名为“效劳器的文件;4.编辑源程序->调试;1定义头文件与常量,声明两个SOCKET对象,初始化SOCKET环境;2创立用于监听的SOCKET环境;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. 继续点击文件->新建、选择建立新的文件;选择C+ Source File选项建立在“客户端工程下的名为“客户端的文件;10.编辑源程序->调试;1在主程序中定义头文件与常量并声明变量,初始化socket 环境并创立用于通信的socket;2设置socket地址并连接到效劳器;3在效劳器与客户机之间发送与接收数据;4当程序退出while循环时将释放占用的资源;11.在组建选项中点击执行【效劳器.exe】或者Ctrl+F5执行程序;12.。实验结果:1.实现了在效劳器与客户端之间发送与承受数据。2.运行效劳器后,效劳器处于监听状态3. 实现了承受来自客户端的请求。4.实现模拟C/S模型的通信方式,效劳器端负责信息的接收,并能够返回给客户端相应的消息;客户机负责向效劳器发送信息。疑难小结:通过本次试验,了解了socketb编程的一些根底知识,学习到了用socket 编写 效劳器应用程序。学习到了设置效劳器socket 地址,用socket 编写客户端应用程序,以及如何承受来自客户端的请求。从而使我对TCP Socket效劳器应用程序有了进一步的了解,通过动手实现其TCP Socket效劳器在TCP端口9990上进展监听,实现CP Socket客户端自动连接到指定效劳器的TCP端口9990,然后提示用户输入向效劳器发送的字符串,更加深刻的理解了TCP Socket效劳器与客户端的特点。同时,在实验过程中,回忆书本上的理论知识,稳固了我的知识。主要算法与程序清单:效劳器:#include <WINSOCK.H>#include <iostream>#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,SOCK_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(SOCKADDR_IN);if(SOCKET_ERROR = retVal)printf("bind failed !n");closesocket(sServer);WSACleanup();return -1;retVal = listen(sServer,1);if(SOCKET_ERROR = retVal)printf("listen failed !n");closesocket(sServer);WSACleanup();return -1;printf("TCP Server start.n");sockaddr_in addrClient;int addrClientlen = sizeof(addrClient);sClient = accept(sServer,(sockaddr FAR*)&addrClient,&addrClientlen);if(INVALID_SOCKET = sClient)printf("accept failed !n");closesocket(sServer);WSACleanup();return -1;while(true)ZeroMemory(buf,BUF_SIZE);retVal = recv(sClient,buf,BUFSIZ,0);if(SOCKET_ERROR = retVal)printf("recv failed !n");closesocket(sServer);closesocket(sClient);WSACleanup();return -1;SYSTEMTIME st;GetLocalTime(&st);char sDateTime30;sprintf(sDateTime,"%4d-%2d-%2d%2d%:2d:%2d",st.wYear,st.wMonth,st.wHour,st.wMinute,st.wSecond);printf("%s,Recv From Client %s:%d :%sn",sDateTime,inet_ntoa(addrClient.sin_addr),addrClient.sin_port, buf);if(strcmp(buf,"quit") = 0)retVal = send(sClient,"quit",strlen("quit"),0);break;elsechar msgBUF_SIZE;sprintf(msg,"Message received - %s", buf);retVal = send(sClient, msg, strlen(msg),0);if(SOCKET_ERROR = retVal)printf("send failed !n");closesocket(sServer);closesocket(sClient);WSACleanup ();return -1;closesocket(sServer);closesocket(sClient);WSACleanup();system("pause");return 0;客户端:#include <WinSOCK2.H>#include <string>#include <iostream>#pragma comment(lib,"WS2_32.lib")#define BUF_SIZE 64int main(int argc, TCHAR* argv)WSADATA wsd;SOCKET sHost;SOCKADDR_IN servAddr;char bufBUF_SIZE;int retVal;if (WSAStartup(MAKEWORD(2,2),&wsd) != 0)printf ("WSAStartup failed !n");return 1;sHost = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);if(INVALID_SOCKET = sHost)printf("socket failed !n");WSACleanup();return -1;servAddr.sin_family = AF_INET;servAddr.sin_addr.S_un.S_addr = inet_addr("192.168.5.205");servAddr.sin_port = htons(9990);int sServerAddlen = sizeof(servAddr);retVal = connect(sHost,(LPSOCKADDR)&servAddr,sizeof(servAddr);if(SOCKET_ERROR = retVal)printf("connect failed !n");closesocket(sHost);WSACleanup();return -1;while(true)printf("Please input a string to send: ");std:string str;std:getline(std:cin, str);ZeroMemory(buf,BUF_SIZE);strcpy(buf,str.c_str();retVal = send(sHost,buf,strlen(buf),0);if(SOCKET_ERROR = retVal)printf("send failed !n");closesocket(sHost);WSACleanup();return -1;retVal = recv(sHost,buf,sizeof(buf)+1,0);printf("Recv From Server: %sn",buf);if(strcmp(buf,"quit") = 0)printf("quit!n");break;closesocket(sHost);WSACleanup();system("pause");return 0;第 10 页

    注意事项

    本文(Windows网络编程一WinSock编程.doc)为本站会员(美****子)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开