好文档 - 专业文书写作范文服务资料分享网站

网络编程实验指导书

天下 分享 时间: 加入收藏 我要投稿 点赞

下面的代码演示了如何建立连接和发送/接收数据:

/*

服务器方在端口6802上等待连接,当连接建立后关闭监听套接口 客户方向服务器端口6802发起连接请求 */

BOOL CMy63_s1_serverDlg::OnInitDialog(> { CDialog::OnInitDialog(>。 CSocket sockListen。 sockListen.Create(6802,SOCK_STREAM,\。//创建本地套接口 sockListen.Bind(6802,\。//绑定参数 sockListen.Listen(5>。 sockListen.Accept(m_sockSend>。//等待连接请求,m_sockSend为成员变量,用于通信 sockListen.Close(>。//关闭监听套接口

SetTimer(1,3000,NULL>。 //启动定时器,定时发送数据 ... }

void CMy63_s1_serverDlg::OnTimer(UINT nIDEvent> { static iIndex=0。 char szSend[20]。 sprintf(szSend,\。 int iSend= m_sockSend.Send(szSend,10,0>。 //发送TCP数据 ... }

BOOL CMy63_s1_clientDlg::OnInitDialog(> { CDialog::OnInitDialog(>。 m_sockRecv.Create(>。//创建本地套接口 BOOL fC=m_sockRecv.Connect(\。//发起连接请求 TRACE(\。 SetTimer(1,3000,NULL>。 //启动定时器,定时接收数据 ... }

void CMy63_s1_clientDlg::OnTimer(UINT nIDEvent> { char szRecv[20]。 int iRecv =m_sockRecv.Receive(szRecv,10,0>。 //接收TCP数据 TRACE(\。 if(iRecv>=0> { szRecv[iRecv]='\\0'。 m_szRecv=szRecv。 UpdateData(FALSE>。 } 3.使用TCP协议实现发送、接收数据的程序 (1) 建立TCP服务器程序,监听端口的信息

(2) 建立TCP客户端程序,连接服务器程序

(3) 客户端程序通过TCP协议连接服务器程序,并接收和显示服务器程序发出

的数据,如图所示:

实验四 FTP程序的实现

一.实验目的:了解FTP协议基础,学习利用WinSock实现FTP的方法 二.实验任务:编程实现FTP程序 三.实验内容 1. FTP协议基础

FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是

提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载

<2)二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不

如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。<在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。 FTP支持工作两种模式,一种方式叫做Standard (也就是 PORT方式,主动方

式>,一种是 Passive (也就是PASV,被动方式>。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server

下面介绍一个这两种方式的工作原理:

Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个

Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口<端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。 2.FTP编程基础

FTP协议使用两条单独的TCP连接,一条专用于发送FTP命令,另一条则专用于传递数据。初始建立连接时,服务器在21号端口上接收来自客户端的命令连接。当需要传送数据时<文件列表、文件数据等),客户端向服务器发出Port命令,并进入监听状态,等待来自服务器的数据连接请求。 要联接到FTP服务器,需要两个步骤,必须创建一个CInternetSession对象,用类CInterSession创建并初始化一个或几个同时存在的Internet会话(session>,并描述与代理服务器的连接<如果有必要的话),如果在程序运行期间需要保持与Internet的连接,可以创建一个CInternetSession对象作为类CWinApp的成员。 MFC中的类CFtpConnection管理与Internet服务器的连接,并直接操作服务器上的目录和文件,FTP是MFC的WinInet支持的三个Internet功能之一,需要先创建一个CInternetSession实例和一个CFtpConnection对象就可以实现和一个FTP服务器的通信,不需要直接创建CFtpConnection对象,而是通过调用CInternetSession::GetFtpConnection来完成这项工作。它创建CFtpConnection对象并返回一个指向该对象的指针。

网络编程实验指导书

下面的代码演示了如何建立连接和发送/接收数据:/*服务器方在端口6802上等待连接,当连接建立后关闭监听套接口客户方向服务器端口6802发起连接请求*/BOOLCMy63_s1_serverDlg::OnInitDialog(>{CDialog::OnInitDialog(>。CSocketsockListe
推荐度:
点击下载文档文档为doc格式
1puj87yvxa7px008twlp8xswm2yhl0015o9
领取福利

微信扫码领取福利

微信扫码分享