string FileName = fullNameList[index];
downloadItem newfile = new downloadItem(FileName,
StaticValue.curSavePath);
downQueue.Enqueue(newfile); }
else//如果是文件夹 {
string downPath=StaticValue.curServerPath +\+
listView1.SelectedItems[0].SubItems[0].Text;
string[] listArray = GetDtListArray(downPath, true); Queue
GetDownFileQueue(listArray);
while(tempQueue.Count>0) {
downQueue.Enqueue(tempQueue.Dequeue()); } } }
}
///
/// 设置保存位置的按钮点击事件 ///
///
private void tsBtn_savePath_Click(object sender, EventArgs e)
{
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) {
StaticValue.curSavePath = folderBrowserDialog1.SelectedPath; }
}
///
/// 点击断开连接的按钮事件,断开连接,并清空listView等 ///
///
private void tsBtn_DisConnect_Click(object sender, EventArgs e)// { try {
string ins = \;
byte[] byins = Encoding.BigEndianUnicode.GetBytes(ins); sock.Send(byins, byins.Length, SocketFlags.None);
20
sock.Shutdown(SocketShutdown.Both); sock.Close();
tsBtn_Connect.Enabled = true; tsBtn_DisConnect.Enabled = false; DirLayer = 0; }
catch { }
toolStripStatusLabel1.Text = \连接已断开\; connectDone = false; listView1.Items.Clear(); fullNameList.Clear();
} ///
/// 双击列表项的事件,返回上一级或者进入到下一级目录 ///
///
private void listView1_MouseDoubleClick(object sender, MouseEventArgs e) {
if (connectDone&&!StaticValue.isBusy)//如果已连接服务器 {
if (listView1.SelectedIndices[0] == 0) {
if (DirLayer > 0) {
StaticValue.curServerPath = StaticValue.
curServerPath.Substring(0,StaticValue. curServerPath.LastIndexOf(\));//获取父
目录
DirLayer--;
RefreshListView(GetDtListArray(StaticValue.
curServerPath, false));
} } else {
string s =listView1.SelectedItems[0]
.SubItems[1].Text;
if (s == \) {
StaticValue.curServerPath =StaticValue
.curServerPath + \ + listView1
.SelectedItems[0].SubItems[0].Text;//获取子目录
21
DirLayer++;
RefreshListView(GetDtListArray(
StaticValue.curServerPath, false));
}
else DownLoad(listView1); } }
}
///
/// 上传文件的点击事件 ///
///
private void tsBtn_Upload_Click(object sender, EventArgs e) {
openFileDialog1.ShowDialog();
string fileName = openFileDialog1.FileName; myThread workThread = new myThread(sock, fileName
, ref toolStripProgressBar1 , ref toolStripStatusLabel2);
workThread.StartUpload();
}
2.6心得体会
通过本次实验,我对网络命令有了一定的概念性认识,并熟悉了基本网
络命令的使用,通过miniFTP Client/Server实验的实践,了解了SOCKET编程相关的一些知识以及用法,了解了客户端和服务器端进行通信的相关算法机制,在建立通信的基础上,实现了一些简单的功能。限于自己的能力,对SOCKET编程理解还不够透彻,对网络通信也只局限于miniFTP Client/Server实验的相关内容,还有待进一步的学习和实践以达到对网络的通信机制更深层次的理解。
参考文献
【1】 陆魁军等编著 计算机网络基础实践教程.北京:清华大学出版社,2005.11
【2】谭浩强编著 C++程序设计.北京:清华大学出版社,2004,6 【3】谭浩强编著 C程序设计.北京:清华大学出版社,2005,7
【4】王洪涛 编著 深入剖析Visual C++.北京:人民邮电出版社,2003,3 【5】陈良伦编著 网络工程概论.北京:机械工业出版社,2007,4
22
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机网络课程设计报告文件传输协议的简单实现(5)在线全文阅读。
相关推荐: