教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

计算机网络大作业

来源:网络收集 时间:2026-08-26
导读: 计算机网络大作业 专业: 班级: 姓名: 学号: 一、介绍 该通信软件是基于C/S模式开发,是用MFC的WinSock编程原理。该应用程序的技术主要有一下几点: 1、从CAsyncSocket类派生出自己所需要的WinSock类 2、WinSock类与应用程序框架之间的关系 3、流式套接字

计算机网络大作业

专业: 班级: 姓名: 学号:

一、介绍

该通信软件是基于C/S模式开发,是用MFC的WinSock编程原理。该应用程序的技术主要有一下几点:

1、从CAsyncSocket类派生出自己所需要的WinSock类 2、WinSock类与应用程序框架之间的关系 3、流式套接字的使用 4、网络事件

CAsyncSocket类是在很底程度上对Winsock API的封装,他提供的低级接口几乎与WinSock API的函数调用直接对应,CAsyncSocket类是从CObject类派生而来。

所谓套接字(socket)是一种网络变成接口,它是对通信短点的一种抽象,提供了一种发送和接收数据的机制。套接字是通信的基石,一个套接字是通信的一端。在通信的任何一端上,用户可以找到与套接字对应的一个套接字名字,每一个正在被使用的套接字都有它的类型和与其相关的进程。套接字存在于通信域中,通信域是为了处理一般的通过套接字通信的线程而引进的一种抽象概念。

二、整体流程图

1、启动与发送 开始启动服务器,使其处于侦听状态启动客户机,与服务器进行连接发送数据是否发送成功否提示:发送失败!是将数据显示在 发送的数据列表框中 2、接收 开始接收数据的事件被触发显示受到的数据到 接收的数据 列表框中 二、主要代码

1、创建派生的套接字类之后,向该套接字中添加一个成员变量,用作指向父对话框口德指针。

//设置CTalkDlg类的指针

void CMySocket::SetParent(CTalkDlg *pDlg) { //设置成员变量 m_pDlg=pDlg; }

2、接收、连接、关闭是近啊处理函数

//事件处理函数

void CMySocket::OnAccept(int nErrorCode) { if(nErrorCode==0) //call the dialog's OnAccept function m_pDlg->OnAccept(); }

//事件处理函数

void CMySocket::OnConnect(int nErrorCode) { if (nErrorCode==0) m_pDlg->OnConnect(); }

void CMySocket::OnRecive(int nErrorCode) { if(nErrorCode==0)

m_pDlg->OnReceive(); }

void CMySocket::OnClose(int nErrorCode) { if(nErrorCode==0) m_pDlg->OnClose(); }

3、因为对话框需要两个套接字,所以要向对话框类(CTalkDlg)中添加两个成员变量。

public:

CMySocket m_sConnectSocket; CMySocket m_sListenSocket;

4、为对话框中所有的变量添加初始化代码。

BOOL CTalkDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add \ // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

} } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here //初始化控制变量

m_cmbType.SetCurSel(1); m_strServName=\ m_nServPort=1000; //更新控制变量 UpdateData(FALSE); //设置套接字成员的CTalkDlg类指针 m_sListenSocket.SetParent(this); m_sConnectSocket.SetParent(this); return TRUE; // return TRUE unless you set the focus to a control }

5、建立客户机与服务器之间的连接

void CTalkDlg::OnBinConnect() { // TODO: Add your control notification handler code here //从对话框中取出数据 UpdateData(TRUE); //禁用链接和类型相关控件 GetDlgItem(IDC_BIN_CONNECT)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SERVNAME)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SERVPORT)->EnableWindow(FALSE); GetDlgItem(IDC_STATIC_SERVNAME)->EnableWindow(FALSE); GetDlgItem(IDC_STATIC_SERVPORT)->EnableWindow(FALSE); GetDlgItem(IDC_COMBO_TYPE)->EnableWindow(FALSE); //判断当前是客户端还是服务器 if(m_cmbType.GetCurSel()==0) { //服务器 //创建用于设置端口绑定的套接字 m_sListenSocket.Create(m_nServPort); //开始侦听请求链接 m_sListenSocket.Listen(); } else { //客户机 //创建一个默认的套接字 m_sConnectSocket.Create(); //发出链接请求 m_sConnectSocket.Connect(m_strServName,m_nServPort); }

…… 此处隐藏:871字,全部文档内容请下载后查看。喜欢就下载吧 ……
计算机网络大作业.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/519026.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)