湖南科技大学计算机网络课程设计.pdfVIP

  • 149
  • 0
  • 约2.81万字
  • 约 30页
  • 2017-06-27 发布于浙江
  • 举报
湖南科技大学计算机网络课程设计

计算机网络 课程设计报告 姓名: 徐新凯 学号: 1305010216 班级:计算机科学与技术2 班 指导老师: 姜磊 湖南科技大学计算机科学与工程学院 2015 年12 月 1、网络聊天程序设计与实现2 2、Ping 程序设计8 3、基于IP 多播的网络会议程序16 4 、简单Web Server 程序的设计与实现22 5、心得体会29 1 一、课程设计题目 《网络聊天程序的设计与实现》 二、课程设计内容 了解socket 通信的原理,在此基础上编写一个聊天程序。 三、课程设计步骤 1、服务器端编程的步骤: 1.1、加载套接字库,创建套接字(WSAStartup()/socket()); 1.2、绑定套接字到一个IP 地址和一个端口上; 1.3、将套接字设定为监听模式等待连接请求(listen()); 1.4、请求到来后,接受链接请求,返回一个新的应对于此次链接的 套接字(accept()); 1.5、返回套接字和客户端进行通信(send()/recv()); 1.6、返回,等待另一个连接请求; 1.7、关闭套接字,关闭套接字库(closesocket()WSACleanup())。 2、客户端编程步骤: 2.1、加载套接字库,创建套接字(WSAStartup()/socket()); 2.2、向服务端发出链接请求(connect()); 2.3、和服务端进行通信(send()/recv()); 2.4、关闭套接字,关闭套接字库(closesocket()/WSACleanup()) 四、调试过程 该程序是用c 编写的,首先,我先用c 编写一个客户端和一个服 务器端,代码主要是参照了实验说明书上的,在此基础上稍做了些修 2 改,实现一个简单客户端与服务端通信。在实现过程中出现了问题, 后来通过网上查资料和请教别人解决了。例如:与没有链接 ws2_32.lib 的库文件,是程序编译时出现错误;还有由于我用的是 TCP 协议通讯,它一次只接收一个数据包,这样就只能实现点对点通 信,而不能异步通信,后来,我通过一个简单的线程解决了该问题; 最后,我专门写出了一个服务器转发客户端发过来的信息到其他的客 户端,这样服务器只是作为服务器,客户端连接服务器后可以进行客 户端与客户端的聊天 五、课程设计结果及结果分析 该程序的最终结果是一个可以在局域网内进行简单异步通信 的程序,如下图所示: 服务器主要的程序源代码: void CreateTranServer() { SOCKET m_SockServer; //开始监听的SOCKET 句柄 struct sockaddr_in serveraddr; //用于绑定的地址信息 //struct sockaddr_in 中的in 标识Internet,就是网络地址,属于AF_INET 地址族 struct sockaddr_in serveraddrfrom; //接收到的连接的地址信息 int iRes; //获取绑定的结果 SOCKET m_Server; //已建立连接的SOCKET 句柄 struct hostent* localHost; //主机环境指针 char* localIP; //本地IP 地址 3 struct CSendPackage sp; //发送包 int iMaxConnect=20; //允许的最大连接个数 20 个 int iConnect=0; //建立连接的个数 DWORD nThreadId = 0; //获取线程的ID 值 char cWarnBuffer[]=It is over Max connect\0;//警告字符串 int len=sizeof(struct sockaddr); //IP 地址长度 struct soc

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档