计算机网络通信设计课程设计

计算机网络通信设计课程设计

ID:14789816

大小:133.00 KB

页数:12页

时间:2018-07-30

计算机网络通信设计课程设计_第1页
计算机网络通信设计课程设计_第2页
计算机网络通信设计课程设计_第3页
计算机网络通信设计课程设计_第4页
计算机网络通信设计课程设计_第5页
资源描述:

《计算机网络通信设计课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Windows环境下TCP/IP数据传输程序的基本运行步骤和编程方法在编此程序时,我们首先创造了一个支持WindowsSocket功能的基类,在此基础上我们又添加了一个继承的基类为CSocket的新类,CSocket是MFC在CAsyncSocket基础上派生的一个同步阻塞Socket的封装类,内支持TCP/IP传输的OnAccept,OnReceive,Onclose等函数。因为在进行TCP/IP通讯时,我们需要用到以上函数调用,所以添加了此子类。voidCFirstDlg::OnNew(){if(m_nType==0){UpdateData(TRUE);BOOLbRet=m_Soc

2、ket.Create(m_nPortNumber);if(!bRet){MessageBox("创建连接失败!");return;}MessageBox("创建连接成功!");m_Socket.Listen();}else{BOOLbRet=m_Socket.Create();UpdateData(TRUE);CStringstr;unsignedcharipAdress1,ipAdress2,ipAdress3,ipAdress4;m_IPAddress.GetAddress(ipAdress1,ipAdress2,ipAdress3,ipAdress4);str.Format("%

3、d.%d.%d.%d",ipAdress1,ipAdress2,ipAdress3,ipAdress4);if(!m_Socket.Connect(str,m_nPortNumber)){MessageBox("连接服务器失败!");return;}MessageBox("连接服务器成功!");CWnd*pWnd=GetDlgItem(IDC_New);pWnd->EnableWindow(FALSE);pWnd=GetDlgItem(IDC_Link);pWnd->EnableWindow(TRUE);}}首先,作为服务器首先要开放端口,而作为客户机而要呼叫相应端口建立连接,m_nT

4、ype的值代表了程序作为客户机还是服务器,若m_nType=0,代表服务器,m_nType=1代表客户机,若为服务器则m_Socket.Create(m_nPortNumber)利用m_nPortNumber的端口号创建套接字,如果成功则调用m_Socket.Listen()进行监听,若为客户机则先调用m_Socket.Create()创建一个套接字,然后调用m_Socket.Connect(str,m_nPortNumber)对相应的ip地址和端口号进行连接。voidNewSocket::OnAccept(intnErrorCode){//TODO:Addyourspecialize

5、dcodehereand/orcallthebaseclassCSocket::OnAccept(nErrorCode);NewSocket*pSocket=newNewSocket;if(Accept(*pSocket)){m_pMyDlg->m_pNewSocket=pSocket;pSocket->m_pMyDlg=m_pMyDlg;}elsedeletepSocket;}在客户机对服务器进行呼叫连接时,若服务器已处于监听状态,收到客户机连接请求时,则产生消息调用OnAccept();OnAccept()中新定义一个NewSocket类pSocket指针用来指向新建立的连接,并将

6、地址赋予m_pNewSocket,用于接下来的处理。voidCFirstDlg::OnSendData(){NewSocket*pSocket;if(m_pNewSocket)pSocket=m_pNewSocket;elsepSocket=&m_Socket;charData[100];UpdateData(TRUE);strcpy(Data,m_DataSend);pSocket->Send(Data,strlen(Data));}此时,服务器与客户机之间已经建立了TCP/IP连接,接下来服务器或客户机就要向对方发送数据,由于建立连接时使用的是m_Socket变量,而在客户机呼叫服

7、务器进行连接时,服务器将m_pNewSocket指针指向新建立的连接,而原服务器m_Socket变量并没有指向新的连接,而是仍然处于监听状态。因此,此时服务器新连接的NewSocket的指针为m_pNewSocket,客户机的新连接的NewSocket的指针为&m_Socket,然后pSocket->Send(Data,strlen(Data))语句调用NewSocket内部的Send语句向对方发送指令。voidNewSocket::OnRec

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。