北京理工大学-计算机网络实践-WinSock点对点通信实验报告.doc

北京理工大学-计算机网络实践-WinSock点对点通信实验报告.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京理工大学-计算机网络实践-WinSock点对点通信实验报告北京理工大学-计算机网络实践-WinSock点对点通信实验报告

实验一 WinSock点对点通信程序 一、实验目的: WinSock是Windows操作系统下的Socket编程接口,通过WinSock函数库可以实现基于TCP/IP协议的进程之间通信。 理解基于WinSock的客户/服务器概念 掌握使用WinSock进行编程的方法 了解常见WinSock开发模式的使用 二、实验内容: 基于WinSock开发一个简单的客户/服务器文本传输程序,客户端能够发送由标准输入得到的文本,服务器能够接收并将其显示在标准输出上。 三、实验环境: 程序运行环境为以太网,采用TCP/IP协议栈,网络操作系统为Windows。程序开发环境为vs2012版本。 四、实验步骤: 步骤1 需求分析 程序功能为: (1) 服务器可以接受任何客户的连接 (2) 服务器在同一时刻只能与一个客户通信,直到该客户退出才可以接收下一个客户 (3) 客户程序使用命令行参数指定服务器地址 (4) 客户端输入的文本都发送给服务器 (5) 客户使用Ctrl+C键停止发送,关闭连接 步骤2 服务器程序: 定义全局变量: SOCKET Server; // 服务器端套接字 SOCKADDR_IN Client_Addr; // 请求用户的Ip地址 SOCKET Sock_Conn; // 是否建立连接成功 char Buff_Recv[1024]; // 接收字符缓冲 char Buff_Send[1024]; // 发送字符缓冲区 服务器端主程序及用到的相关函数: void SLoad(); // 加载套接字库 void SCreate(); // 创建套接字 void SBind(); // 绑定套接字到一个IP地址和一个端口上 void SListen(); // 将套接字设置为监听模式等待连接请求 void SAccept(); /* 请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字 */ void SClose(); // 关闭套接字 void SUnLoad(); // 卸载套接字库 void Receive(); // 接受请求 void Send(); // 服务器段发送字符串到客户端 主函数: int main(int argc, char* argv[]) { … /* 循环查询 */ while(1) { SLoad(); SCreate(); SBind(); SListen(); SAccept(); Receive(); SClose(); SUnLoad(); } … } 步骤三、客户端程序: 定义全局变量: SOCKET Client; // 客户端端套接字 SOCKADDR_IN Server_Addr; // 服务器用户的Ip地址 WSADATA wsaData; char Buff_Recv[1024]; // 接收字符缓冲 char Buff_Send [1024]; // 发送字符缓冲区 客户端主程序及用到的相关函数: void SLoad(); // 加载套接字库 void SCreate(); // 创建套接字 void SBind(); // 绑定套接字到一个IP地址和一个端口上 void SAccept(); /* 请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字 */ void SClose(); // 关闭套接字 void SUnLoad(); // 卸载套接字库 void Receive(); //客户端接收字符串到客户端 void Send(); // 发送请求 主函数: int main(int argc, char* argv[]) { … SLoad(); SCreate(); SBind(); SAccept(); /* 循环发送请求 */ while(1) { Send(); } SClose(); SUnLoad(); … } 五、实验效果: 服务器端接收请求: 客户端输入服务器IP地址并等待响应: 客户端选择命令帮助1进行通信 2退出 服务器进行选择是否响应客户端 开始通信: 客户端: 服务器端: 六、实验总结: Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,我们可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 socket实质上提供了进程通信的端点。进程通信之前,双方首先必须

文档评论(0)

cxiongxchunj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档