通信原理实验23745_第1页
通信原理实验23745_第2页
通信原理实验23745_第3页
通信原理实验23745_第4页
通信原理实验23745_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生学号 0121410870704实验课成绩学 生 实 验 报 告 书实验课程名称通信原理C开 课 学 院计算机科学与技术学院指导教师姓名刘维学 生 姓 名廖锡峰学生专业班级软件14022016-2017学年第二学期实验课程名称: 通信原理C 实验项目名称采用WinSock在有限局域网的点-点通信+通信仿真实验成绩实验者廖锡峰专业班级软件1402组别同组者实验日期 年 月 日第一部分:实验分析与设计(可加页)一、 实验内容描述(问题域描述)实验内容:采用WinSock在有限局域网的点-点及群发通信仿真实验要求: (1)熟悉VB6.0或其他编程工具的控件和界面设计,进而熟悉Winsock的有关

2、控件及编程方法。 (2)在了解所用的两个工作站和服务器的IP地址后,采用VB6.0或其他编程工具的控件和Winsock控件编写并调试在有线局域网上的点-点通信程序。 (3)在了解所用的3个工作站和服务器的IP地址后,采用VB6.0或其他编程工具的控件和Winsock控件编写并调试在有线局域网的点-点群发通信程序。 (4)分别编程实现点-点通信及为多个接收地址的群发通信,设计实验界面以适应点-点通信以及为多个接收地址的群发通信(因为群发是一对多的循环点-点通信。)二、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述) 综合应用所学,实现一个在有线局域网上

3、的点-点通信,要求保证每个学生一台微机。此实验为综合型实验,要求学生综合利用先修课程高级程序设计语言、算法设计与分析,与本门数据通信课程的知识,选择一种编程工具,如Visual C+,实现点点通信+通信仿真。三、主要仪器设备及耗材 PC机、VC+ 6.0第二部分:实验调试与结果分析(可加页)一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)一同步Winsocket实现在局域网内1对1通信。手动输入服务器的IP地址,端口号事先设定好。服务器端:1、先使用AfxSocketInit()创建套接字。2、创建2个CSocket,一个用于初始化、链接、监听,另一个用于接

4、收客户端发送回来的内容。3、使用Socket()初始化。4、使用Bind(port)绑定,port代表客户端端口号,一般为1025到49151,只要服务器和客户端的port设置都是同一个端口就可以整除通讯了。5、通讯服务器端代码:void CCCDlg:OnConnect() / TODO: Add your control notification handler code hereUpdateData(TRUE); m_client.Create(4001);if(m_client.Connect(m_ip,4000)=true)AfxMessageBox("连接成功"

5、);i = 1;m_send.EnableWindow(TRUE);elsem_client.Close();AfxMessageBox("连接失败");void CCCDlg:ShowAccept()m_server.Accept(m_recv);AfxMessageBox("连接成功");i = 2;m_send.EnableWindow(TRUE);void CCCDlg:OnSend() / TODO: Add your control notification handler code hereUpdateData(TRUE);m_ctrl1.

6、GetWindowText(m_msg);if(i=1) m_client.Send(m_msg, 255);else m_recv.Send(m_msg, 255);CString str;m_ctrl.GetWindowText(str);str += _T("rn") + m_msg;m_ctrl.SetWindowText(str);m_ctrl1.SetSel(0, -1);m_ctrl1.ReplaceSel("", true);void CCCDlg:ShowMsg()char buf255;if (i = 1) m_client.Rece

7、ive(buf,255);else m_recv.Receive(buf, 255); CString msg;msg.Format("%s",buf);CString str;m_ctrl.GetWindowText(str);str += _T("rn") + msg;m_ctrl.SetWindowText(str);/length = strlen(msg);/m_ctrl.SetSel(length, length, TRUE);/AfxMessageBox(msg);void CCCDlg:OnListen()/ TODO: 在此添加控件通知

8、处理程序代码m_server.Create(4000);m_server.Listen();客户端:1、创建套接字2、创建CSocket3、初始化4、连接5、通讯客户端代码:AfxSocketInit(); /创建套接字 CSocket aSocket; /创建CSocket CString strIP;  /服务器的IP地址,若是本机的IP就为127.0.0.1 CString strPort; /连接的端口号,与服务器的一致即可 CString strText; strIP = "

9、127.0.0.1" strPort = "4567" GetDlgItemText(IDC_EDIT1, strText);  /获取MFC编辑框的输入内容 /初始化CSocket对象,因为客户端不需要绑定任何端口和地址,所以默认参数即可 if (!aSocket.Create()  /因为是客户端所以使用Create初始化没问题,使用Create后不用使用Bind进行连接   char szMsg1024 = 0 ;  sprint

10、f(szMsg, "Create faild:%d", aSocket.GetLastError();  CString Er(szMsg);  AfxMessageBox(Er);  /转换需要连接的端口内容类型 int nPort = atoi(strPort); /连接指定的地址和端口 if (aSocket.Connect(strIP, nPort)   char szRecValue1024 = 0 ;  aSocket.Se

11、nd(strText, strText.GetLength(); /发送内容给服务器  aSocket.Receive(void *)szRecValue, 1024); /接收服务器发来的内容(该方式会阻塞,在此等待有内容接收到才能继续向下执行)  CString Re(szRecValue);  SetDlgItemText(IDC_EDIT2, Re);/  AfxMessageBox(Re);  else   char szMsg1024 = 0 ;

12、0; sprintf(szMsg, "Create faild:%d", aSocket.GetLastError();  CString Er(szMsg);  AfxMessageBox(Er);  aSocket.Close();二异步Winsocket实现在局域网内群发通信。端口号事先设定好。BOOL CALLBACK GetQQHwnd(HWND hwnd, LPARAM lparam)  BOOL bRet

13、0;= TRUE; /*do */ /2.筛选窗口 TCHAR strClassNameMAXBYTE; GetClassName(hwnd, strClassName, MAXBYTE); if (StrCmpW(strClassName, L"TXGuiFoundation") = 0)  /处理 PostMessage(hwnd, WM_CHAR, 0x48, 0);&#

14、160;PostMessage(hwnd, WM_CHAR, 0x65, 0); PostMessage(hwnd, WM_CHAR, 0x6C, 0); PostMessage(hwnd, WM_CHAR, 0x6C, 0); PostMessage(hwnd, WM_CHAR, 0x6F, 0); PostMessage(hwnd, WM_CHAR, 0x21, 0);  /1)通过

15、标题 /2)通过类名 / while (false); return bRet;  下面是按钮 发送的消息处理 void CBatchSendForQQDlg:OnBnClickedBtnsendforqq()  / TODO:  在此添加控件通知处理程序代码 /1.获取窗口句柄 EnumWindows(GetQQHwnd, 0);  BOOL CBatchSendForQQDlg:PreTranslateMessage(MSG* pMsg)  / TODO:  在此添加专用代码和/或调用基类 if (pMsg->message 

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论