局域网文件传输及消息发送

局域网文件传输及消息发送
局域网文件传输及消息发送

《网络程序设计》课程设计报告书

题目:局域网文件传输与消息通信专业:网络工程

学号:20091423

学生姓名:史政法

指导教师:魏宁

完成日期:2012年06月06日

一、题目及要求

Window程序设计的基本要求:

1.熟练掌握网络的基本概念和原理;

2.熟练掌握网络编程接口Socket概念及编程原理;

3.掌握基于TCP/IP的Internet编程技术;

4.掌握各种软件开发工具的使用过程及方法。

本实例程序的技术要点是:

●如何从CasyncSocket类派生出自己的WinSock类。

●理解WinSock类与应用程序框架的关系。

●重点学习流式套接字对象的使用。

●处理网络事件的方法。

二、系统概要设计

1、CSocket类的介绍

在MFC中,为了提供面向对象的编程方式而封装了两个WinSock类:一个是CAsyncSocket类,另一个是CSocket类。他们的不同点在于前者使用的是非阻塞模式操作,而后者可以支持阻塞模式的I/O操作。CSocket类是从CAsyncSocket类中继承来的,他为程序员提供了更高级的抽象性。由于CSocket类和CArchive类一起使用,并且管理了通讯的大多数操作,从而使程序员从网络编程的底层细节中解脱了出来,不必使用CAsyncSocket 的一些成员函数和一些Windows Socket API函数来处理通信问题。共同使用CSocket和CArchive类对象进行编程是最简单的WinSock编程模式。

下面是使用CSocket类进行网络通信的过程

(1)构造CSocket类对象

(2)用CSocket类对象的Create函数创建Windows Socket,Create()函数会调用Bind()函数将此函数绑定的指定的地址和端口。

(3)Socket创建完毕后,Listen()函数在服务器端进行监听客户的连接请求。

(4)在这一步,服务器端调用Accept()函数对客户端发来的请求进行接受和处理,而客户端则调用Connect()函数向服务器发出连接请求。

(5)在客户端和服务器端的数据传输完成后,应该分别在两边销毁创建的CSocket 对象。

2、编程思路和工程实现

用MFC AppWizard新建一个给予对话框的工程,在第三步中添加Windows SocketS的

支持,建立的程序界面如右图:

图1—-程序主对话框中的控件属性

控件类型

控件ID

Caption 静态文本 static text IDC_STATIC

本机的ip : 静态文本 static text IDC_STATIC_SERVPOR T 要连接的ip : 静态文本 static text IDC_STATIC_MSG 消 息 IP 地址 Internet add IDC_MYIP IP 地址 Internet add IDC_YOURIP 编辑框 edit box IDC_EDIT_MSG 命令按钮 button IDC_BUTTONCONNECT 启动 命令按钮 button IDC_BUTTON_DISCONNE 关闭 命令按钮 button IDC_BUTTON_SENDMSG 发送消息 命令按钮 button IDC_BUTTON_SEND_FIL 传送文件 命令按钮 button IDC_BUTTON_STOP 停止传送 命令按钮 button IDCANCEL

退出系统 进程 process

IDC_PROGRESS_SEND_F

图2—-对话框中的控件对象定义相应的成员变量

编程思路:首先在对话框中输入要连接的IP地址,然后单击“启动”按钮,要连接的主机也做相同的操作,两边都准备完事后,两台计算机就可以消息和文件的传输了。

单击“启动”按钮时,处理函数启动了监听线程来启动服务,主要的语句如下:

pThreadListen = ::AfxBeginThread(_ListenTcpThread,this);

点击“发送消息”按钮时,处理函数启动了消息发送线程来进行消息的传送,语句如下:pThreadSendMsg = ::AfxBeginThread(_SendMsgThread,this);

当点击“传送文件”按钮时,处理函数启动了文件传输线程来进行文件传输,语句如下:pThreadSendMsg = ::AfxBeginThread(_SendFileThread,this);

下面主要介绍一下要用到的三个线程和一个文件接收处理函数。首先要产生三个线程对象:

CWinThread _ListenTcpThread;

CWinThread _SendFileThread;

CWinThread _SendMsgThread;

三、系统详细设计

1.监听线程函数

UINT _ListenTcpThread(LPVOID lparam)

{

CFiletranDlg *pDlg=(CFiletranDlg *)lparam;

if(pDlg->StopServer==true) return -1;

CSocket sockSrvr;

pDlg->m_Potr=PORT;//保存当前使用端口,用于关闭

int createSucceed=sockSrvr.Create(pDlg->m_Potr);

if(createSucceed==0)

{

AfxMessageBox("_ListenTcpThread Create错误!"+pDlg->GetError(GetLastError()));

return -1;

}

int listenSucceed=sockSrvr.Listen(); //开始监听

if(listenSucceed==0)

{

AfxMessageBox("_ListenTcpThread Listen错误!"+pDlg->GetError(GetLastError()));

return -1;

}

CSocket recSo;

SOCKADDR_IN client;

int iAddrSize=sizeof(client);

int acceptSucceed=sockSrvr.Accept(recSo,(SOCKADDR *)&client,&iAddrSize); //接受连接并取得对方IP

if(acceptSucceed==0)

{

AfxMessageBox("_ListenTcpThread Accept错误!"+pDlg->GetError(GetLastError()));

return -1;

}

sockSrvr.Close();//关闭

char flag[FLAG]={0};

if(recSo.Receive(flag,FLAG)!=2)

{

return -1;

}

pDlg->m_type=flag[0];

if(pDlg->m_type=='D') return 0;

pThreadListen=::AfxBeginThread(_ListenTcpThread,pDlg);

pDlg->ReceiveFileMsg(recSo,client);

return 0;

}

2.传送文件线程函数

UINT _SendFileThread(LPVOID lparam)

{

CFiletranDlg *pDlg=(CFiletranDlg *)lparam;

if(pDlg->StopServer==true) return -1;

CSocket sockClient;

sockClient.Create();

CString ip;

pDlg->m_YourIp.GetWindowText(ip);

sockClient.Connect(ip, PORT);

//首先发送标记F为文件,2

int end=0;

end=sockClient.Send("F",FLAG);

///////////////////////////////////////////////////////////////////发送标志是否成功

if(end==SOCKET_ERROR)

{

AfxMessageBox("_SendFileThread Send错误!"+pDlg->GetError(GetLastError()));

return -1;

}

else if(end!=2)

{

AfxMessageBox("文件头错误");

return -1;

}

///////////////////////////////////////////////////////////////////

CFile myFile;

FILEINFO myFileInfo;

if(!myFile.Open(pDlg->m_fileName, CFile::modeRead | CFile::typeBinary)) return -1;

myFileInfo.fileLength=myFile.GetLength(); //得到文件大小

strcpy(myFileInfo.fileName,myFile.GetFileName());//得到文件名称

sockClient.Send(&myFileInfo,sizeof(myFileInfo)); //发送文件信息

pDlg->m_Progress.SetRange32(0,myFileInfo.fileLength);

myFile.Seek(0,CFile::begin);

char m_buf[SIZEFILE]={0};

CString strError;

int num=0;

end=0;

int temp=0;

for(;;)

{

if(pDlg->FileWork==false)

{

pDlg->FileWork=true;

pDlg->GetDlgItem(IDCANCEL)->EnableWindow(false);

pDlg->GetDlgItem(IDC_BUTTON_DISCONNECT)->EnableWindow(false);

}

num=myFile.Read(m_buf, SIZEFILE);

if(num==0) break;

end=sockClient.Send(m_buf, num);

temp+=end;

pDlg->m_Progress.SetPos(temp);

if(pDlg->FileStop==true)

{

pDlg->FileStop=false;

pDlg->FileWork=false;

break;

}

if(end==SOCKET_ERROR)

{

AfxMessageBox("_SendFileThread Send错误!"+pDlg->GetError(GetLastError()));

break;

}

}

pDlg->m_Progress.SetPos(0);

CString strLocalName;

pDlg->GetLocalHostName(strLocalName);

CString strLocalIP;

pDlg->GetIpAddress(strLocalName,strLocalIP);

if(temp==myFileInfo.fileLength)

AfxMessageBox("文件发送成功");

else

AfxMessageBox("文件发送失败");

myFile.Close();

sockClient.Close();

pDlg->FileWork=false;

pDlg->GetDlgItem(IDC_PROGRESS_SEND_FILE)->ShowWindow(SW_HIDE);

pDlg->GetDlgItem(IDC_BUTTON_STOP)->EnableWindow(false);

pDlg->GetDlgItem(IDCANCEL)->EnableWindow(true);

pDlg->GetDlgItem(IDC_BUTTON_DISCONNECT)->EnableWindow(true);

return 0;

}

3.发送消息线程函数

UINT _SendMsgThread(LPVOID lparam) //TCP发送信息线程

{

CFiletranDlg *pDlg=(CFiletranDlg *)lparam;

if(pDlg->StopServer==true) return -1;

CSocket sockClient;

sockClient.Create();

CString ip,strError;

pDlg->m_YourIp.GetWindowText(ip);

int conn=sockClient.Connect(ip, PORT);

if(conn==0) ///////////////////////////////////

{

AfxMessageBox("_SendMsgThread Connect错误!"+pDlg->GetError(GetLastError()));

sockClient.ShutDown(2);

sockClient.Close();

AfxEndThread(1L);

return 0;

}

//首先发送标记M为信息,2

int end=0;

end=sockClient.Send("M",FLAG);

if(end==SOCKET_ERROR)

{

AfxMessageBox("_SendMsgThread Send错误!"+pDlg->GetError(GetLastError()));

return -1;

}

else if(end!=2)

{

AfxMessageBox("消息头错误");

return -1;

}

CString strMsg=pDlg->message;

end=sockClient.Send(strMsg,strMsg.GetLength());

if(end==SOCKET_ERROR)

{

AfxMessageBox("_SendMsgThread Send错误!"+pDlg->GetError(GetLastError()));

return -1;

}

int i=0;

sockClient.Close();

return 0;

}

4.文件接收处理函数

int CFiletranDlg::SaveYourFile(CSocket &recSo, SOCKADDR_IN &client)

{

CString fname;

CFileDialog dlg(false); //另存文件

FILEINFO myFileInfo;

recSo.Receive(&myFileInfo,sizeof(FILEINFO));

int fileLength=myFileInfo.fileLength;

CString strfileIp,strfileName,strfileLength;

strfileIp.Format(inet_ntoa(client.sin_addr));

strfileName.Format(myFileInfo.fileName);

strfileLength.Format("%f",myFileInfo.fileLength/1024.0);

CString title="文件"+strfileName+" 大小"+strfileLength+"KB "+"来在"+strfileIp+" 是否接受";

dlg.m_ofn.lpstrTitle=title;//标题条

char fileme[500]={0};//必须足够大小

strcpy(fileme,strfileIp+strfileName);

dlg.m_ofn.lpstrFile=fileme; //文件名称

if(dlg.DoModal()==IDOK)

{

fname=dlg.GetPathName(); //得到文件名名称、路径

GetDlgItem(IDC_PROGRESS_SEND_FILE)->ShowWindow(SW_SHOW);

}

else

{

GetDlgItem(IDC_PROGRESS_SEND_FILE)->ShowWindow(SW_HIDE);

GetDlgItem(IDC_BUTTON_DISCONNECT)->EnableWindow(true);

GetDlgItem(IDCANCEL)->EnableWindow(true);

recSo.Close();

return 0;

}

char buf[SIZEFILE]={0};

CFile f(fname,CFile::modeCreate|CFile::modeWrite); //存文件

m_Progress.SetRange32(0,fileLength);

int n=0; //接受的字节数0表示结束

int temp=0;

GetDlgItem(IDCANCEL)->EnableWindow(false);

GetDlgItem(IDC_BUTTON_DISCONNECT)->EnableWindow(false);

for(;;)

{

n=recSo.Receive(buf,SIZEFILE); //接受

if(n==0) //0表示结束

break; //接受完毕

f.Write(buf,n);

temp+=n;

m_Progress.SetPos(temp);

if(FileWork==false) FileWork=true;

if(FileStop==true)

{

FileStop=false;

FileWork=false;

break ;

}

}

f.Close();

m_Progress.SetPos(0);

if(temp==fileLength)

MessageBox("文件接受成功");

else

MessageBox("文件接受失败");

FileWork=false;

GetDlgItem(IDC_PROGRESS_SEND_FILE)->ShowWindow(SW_HIDE);

GetDlgItem(IDC_BUTTON_STOP)->EnableWindow(false);

GetDlgItem(IDCANCEL)->EnableWindow(true);

GetDlgItem(IDC_BUTTON_DISCONNECT)->EnableWindow(true);

return 0;

}

四、课程设计总结

采用多线程方法,利用MFC的CSocket类,可以简单方便的实现计算机用户间的文件传输和消息发送功能。以上的程序在Visual C++6.0环境编译通过,并且在学校机房内(本机和本机、本机和他机之间)测试能达到基本的要求。当然我们可以通过继续增加线程来进一步拓展程序的功能。

指导教师评语:

成绩:

指导教师:

年月日

局域网聊天系统(详细设计)

局域网聊天系统 详 细 设 计 成绩:

目录 1.功能需求 (1) 2.数据库设计 (1) 2.1 基本表设计 (1) 2.1.1 表结构汇总 (1) 2.1.2 T_Users表结构设计 (2) 2.1.3 XXX表结构设计 (2) 2.2 视图设计 (2) 2.2.1 视图汇总 (2) 2.2.2 XXX视图设计 (2) 2.3 存储过程设计 (3) 2.3.1 存储过程汇总 (3) 2.3.2 XXX存储过程代码 (3) 3.服务器端设计及实现 (3) 3.1 启动服务器功能的设计与实现 (3) 3.1.1 界面设计 (3) 3.1.2 流程 (4) 3.1.3 关键代码 (4) 3.2 消息管理功能的设计与实现 (4) 3.2.1 界面设计 (3) 3.2.2 流程 (4) 3.2.3 关键代码 (4) 4.客户端的设计与实现 (5) 4.1 注册模块的设计与实现 (5) 4.1.1 界面设计 (5) 4.1.2 流程图 (6) 4.1.3 关键代码 (6) 4.2 登陆功能的设计与实现 (6) 4.2.1 界面设计 (5) 4.2.2 流程图 (5) 4.2.3 关键代码 (6) 4.3 聊天功能的设计与实现 (7) 4.3.1 界面设计 (8) 4.3.2 流程图 (8) 4.3.3 关键代码 (9) 5.人员及分工 (9)

局域网聊天系统 详细设计1.功能需求 图 1 项目功能结构图2.数据库设计 2.1 基本表设计 2.1.1 表结构汇总 表 1 基本表汇总

2.1.2 T_Users表结构设计 表 2 用户表(T_Users)结构设计 2.1.3 XXX表结构设计 表 3 XXX(xxx)结构设计 2.2 视图设计 2.2.1 视图汇总 2.2.2 XXX视图设计

JAVA局域网聊天参考文献

主要参考文献: [1]侯俊杰.深入浅出MFC[M].武汉:华中科技大学出版社,2001. [2]朱福喜,傅建明,唐晓军.Java项目设计与开发范例[M].北京:电子工业出版社,2005. [3]朱福喜,唐晓军.Java程序设计技巧与开发实例[M].北京:人民邮电出版社,2004. [4]洪维恩,何嘉.Java面向对象程序设计[M].北京:中国铁道出版社,2005. [5]刘慧宁.Java程序设计[M].北京:机械工业出版社,2005. [6]殷兆麟.Java网络编程基础[M].北京:清华大学出版社,2004. [7]黄强.WINDOWS网络编程[M].北京:人民邮电出版社,2003. [8]W.Richard Stevens.TCP/IP详解[M].范建华,译.北京:机械工业出版社,2000. [9]Andrew S.Tanenbaum,Vrije Universiteit,Amsterdam,The Netherla.计算机网络[M].4版.潘爱民,译.北京:清华大学出版社,2004. [10]林晓.基于TCP/IP的局域网聊天工具设计[J].福州:福建电脑,2007,(10): 123-124. [11]林锐.软件工程思想[M].西安:西安电子科技大学出版社,2001. [12]耿祥义,张跃平.Java2实用教程[M].2版.北京:清华大学出版社,2006. [13]赵海亮.局域网聊天程序的分析与实现[J].北京:中国科技信息.2004,(22):17-18. [14]马勇.基于UDP多播文件传输方法的研究[J].福州:福建电脑.2009,(2):69-70. [15]黄海芳,宋筱媛.基于UDP组播的局域网聊天设计[J].福州:福建电 脑.2008,(2):121-122.

局域网共享管理软件之大势至共享文件夹管理软件V4.1使用说明

局域网共享管理软件之大势至共享文件夹管理软件V4.1使用说明 作者:网络喵日期:2015年11月30日 大势至共享文件夹管理软件是一款专门保护局域网共享文件访问的软件,可以防止复制共享文件、禁止删除共享文件、禁止将共享文件另存为本地、禁止打印共享文件等,还可以监控用户的操作记录,可以禁止U盘复制共享文件、禁止将共享文件通过邮件、网盘、FTP上传、QQ发送文件等方式泄露出去,全面保护企业共享文件的安全。 大势至共享文件夹管理软件V4.1使用说明: 1、软件安装 大势至共享文件夹管理软件(百度搜索自己下载吧)基于B/S架构,纯绿色免安装设计,只需要将本程序复制在设置了共享的电脑或服务器上即可使用,局域网其他电脑不需要安装,也不需要调整网络结构。(注:对共享文件进行保护之前,需要先停止共享,否则无法对文档进行加密保护)如下图所示: 图:对文档保护之前需要停止共享,否则无法加密保护 2、选择文件 点击软件界面右上角的“浏览”按钮,找到需要管理的共享文件夹,选中,然后点击“确定”,如下图所示:

3、用户列表及权限设置 共享文件夹添加到被保护的文件夹路径中后,左侧的“用户列表”会出现当前电脑或服务器上所有的用户账户,根据自己的需要点击某个账户(或者不点击,则默认是所有用户)。右侧的“访问共享文件权限设置”,可以勾选想要赋予用户访问共享文件的各种权限。 软件默认只开启了“读取”权限,即所有访问共享文件的用户都只能打开、读取共享文件,而不能进行复制、修改、剪切、重命名、打印等操作。 例如,在左侧的“用户列表”选中“Administrator”账户,然后在右边勾选相应权限(复制、修改、删除等),即“Administrator”账户就具有了上述操作权限。没有选中下面的“Guest”账户,则其只有“读取”权限。选中了用户名和对应的共享文件访问权限之后,还需要点击下面的“保护”,这样就完成设置了。如下图所示:

基于JAVA局域网聊天程序设计与实现(附源代码)

局域网聊天课程设计 摘要 随着互联网的发展,网络聊天工具作为一种交流工具,已经受到网民的青睐。目前,出现了很多功能强大的聊天工具,其中应用比较广泛的有腾讯QQ、MSN-Messager等等。 即时通讯软件,是每一个上网用户都需要的工具,它除了能够让您迅速地在网上找到自己的朋友和伙伴之外,还可以实时交谈和传递信息,截止到目前,全球约有近3亿多人使用即时软件,正因为即时通讯软件拥有数以亿计的用户和增长的市场,所以各个公司都盯上了这个最大的市场,一时间,即时通讯市场硝烟四起。 对等网络(peer-to-peer,简称P2P),应用最初出现时和现在并不相同。事实上可以认为它是若干不同技术以及流行趋势相结合的产物。以下是导致P2P技术发展最重要的趋势:首先,一些新技术与软件工程的结合,形成了一种将工作分散的趋势。P2P计算正是这种分散工作趋势的结果。其次,在企业应用集成等因素的驱动下,过去十年渐渐形成从集中的单机系统转向分布式系统。然而随着互联网的发展,全面的分布式计算也就成为一种迫切需求。 关键词:局域网聊天 P2P java

Abstract With the development of the Internet,the chat tool as a communication tool, has been popularly accepted by netizens of all ages. At present, there are many powerful chat tools, of which Tencent QQ, MSN-Messager are much more prevalent. Instant messaging software is necessary for every one who connects to the internet, which can not only provide you a prompt way to find friends and partners online, but can provide you the convenience of internet relay chat and information delivering. Up to now, there are about 300 million people using real-time software all over the world. As more and more corporations have focused on this market with growing potential, which has hundreds of millions of uses, the competitions among these corporations are extremely fierce. The initial application of peer-to-peer network (peer-to-peer, referred to as P2P) is not the same as it is now. In fact, it can be regarded as a combination of different technologies and fashion trends. Below are the most important trends that have led the development of P2P technology: First of all, the integration of software engineering and new technologies led to a working dispersion trend. As a result, P2P computing was born. Then, in the past decade, it has turned fro m a single centralized system to distributed system due to the motivation of factors such as enterprise application integration. At last, with the development of the Internet, however, a comprehensive distributed computing has become an urgent need. Keywords:LAN chat P2P java

局域网文件共享服务器搭建初稿方案

局域网文件共享服务器搭 建初稿方案 Prepared on 22 November 2020

局域网文件共享服务器搭建初稿方案一.需求分析 1.公司有7个大部门,分别为:综合部、技术部、质量部、生产部、采购物流部、商务部、财务部。 2. 各部门的文件夹只允许本部门员工有权访问;各部门之间交流性质的文件放到公用文件夹中。 3. 每个部门都有一个管理本部门文件夹的管理员账号和一个只能新建和查看文件的普通用户权限的账号。 4. 公用文件夹中分为存放共享各部门的文件夹和工具软件文件夹。 5. 对于各部门自己的文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以在该部门文件夹下新建文件及文件夹,并且对于自己新建的文件及文件夹有完全控制权限,对于管理员新建及上传的文件和文件夹只能访问,不能更改和删除。不是本部门用户不能访问本部门文件夹。 6. 对于公用文件夹中的各部门共享文件夹,各部门管理员具有完全控制权限,而各部门普通用户可以对文件夹进行访问查看,但不能更改和删除。本部门用户(包括管理员和普通用户)在访问其他部门公共共享文件夹时,只能查看不能修改、删除、新建。对于存放工具软件的文件夹,只有管理员有权限,其他用户只能访问。 二.规划 根据公司需求情况,现做出如下规划: 1. 在系统分区时单独分一个Company的区,在该区下有以下几个文件夹:综合部、技术部、质量部、生产部、采购物流部、商务部、财务部、公共文件。在“公共文

件”下又有以下几个文件夹:综合部、技术部、质量部、生产部、采购物流部、商务部、财务部、工具软件。 2. 各部门对应的文件夹由各部门自己管理,工具软件文件夹由管理员维护。 3. 账号角色划分为超级管理员组、部门管理员组、普通用户组。 超级管理员组用户账号: superadmin; 部门管理员组包含用户 综合部管理员账号:zhbadmin;密码: 技术部管理员账号:jsbadmin;密码: 质量部管理员账号:zlbadmin;密码: 生产部管理员账号:scbadmin;密码: 采购物流部管理员账号:cgbadmin;密码: 商务部管理员账号:swbadmin;密码: 财务部管理员账号:cwbadmin;密码: 普通用户组分 为:zhbuser;jsbuser;zlbuser;scbuser;cgbuser;swbuser;cwbu ser 密码:和各普通用户名对应的一样。 文件夹之间的关系请见下图: 三.文件共享服务安装和配置 1.安装文件服务器 2.用户角色配置 Step1 在桌面上用鼠标右键单击【我的电脑】图标,在弹出的快捷菜单中选择【管理】命令。打开“计算机管理”窗口,在左窗格中展开【本地用户和组】目录。然后用鼠

局域网聊天程序的实现

分类号:TP311.1 U D C:D10621-032-(2007)6165-0 密级:公开编号:2003032147 成都信息工程学院 学位论文 局域网的聊天程序的实现 论文作者姓名:吴剑辉 申请学位专业:网络工程 申请学位类别:工学学士 指导教师姓名(职称):王海春(教授) 论文提交日期:2007年06月10日

局域网的聊天程序的实现 摘要 网络通讯是目前计算机用户进行交流最普遍的方式,各种各样的聊天软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。本文介绍了在Windows环境下开发局域网聊天程序思路和方法。系统使用流行的Delphi7.0开发软件,采用Socket技术实现网络通讯。数据库使用Delphi自带的Database desktop。系统采用典型的C/S(服务器/客户端)构架。系统主要实现了用户注册、登录、聊天、服务器管理等功能。本系统从需求分析、系统的设计、具体功能的实现都严格遵循了软件设计工程的思想。 关键词: Socket; TCP/IP; C/S

The Implementation of LAN Chatting Program Abstract Network is the most popular way of communication between computer users, therefore a lot of chatting softwares come out; on the other hand, more communication services are provided by the ISP. This paper introduces the ideas and methods of LAN chatting program which are developed on Windows. This system is developed by the Delphi7.0 software, and uses the Socket technology to implement network communications. Database using its own database desktop. Software is based on C/S architecture. The system mainly implements the functions of user registration, login, chatting, server management etc.From requirement analysis, outline design, detailed design to coding, function test, the implementation of the function in this essay absolutely follow the process of the software development. Key words:Socket; TCP/IP; C/S

易语言简单局域网聊天代码(客户服务器组件编写)

客户机代码:. 版本2 .支持库shell .支持库xplib .程序集窗口程序集1 .程序集变量文件号1, 整数型 .程序集变量文件长度, 整数型 .程序集变量发送内容, 字节集 .程序集变量文件名, 文本型 .程序集变量文件号2, 整数型 .子程序_按钮1_被单击 .局部变量现在时间, 文本型 .如果(编辑框7.内容=“1”)

.如果(编辑框6.内容≠“”) .如果(编辑框2.内容≠“”) 客户1.发送数据(“聊天”+编辑框2.内容) 现在时间=到文本(取年份(取现行时间())) +“/”+到文本(取月份(取现行时间())) +“/”+到文本(取日(取现行时间())) +“/”+到文本(取小时(取现行时间())) +“:”+到文本(取分钟(取现行时间())) +“:”+到文本(取秒(取现行时间())) 编辑框1.内容=编辑框1.内容+“【本机】”+现在时间+#换行符+“”+编辑框2.内容+#换行符 编辑框2.内容=“” .否则 信息框(“发送消息不能为空”, 48, “提示”) .如果结束 .否则 信息框(“服务器IP地址不能为空”, 48, “提示”) .如果结束 .否则 信息框(“服务器未连接”, 48, “提示”) .如果结束 .子程序_按钮2_被单击 .如果(编辑框6.内容≠“”) .如果(编辑框8.内容≠“”) .如果(客户1.连接(编辑框6.内容, 1991) =真) 播放MP3 (1, “xlj.mp3”) 编辑框1.内容=编辑框1.内容+“连接:”+编辑框6.内容+“成功”+#换行符 按钮2.禁止=真 编辑框7.内容=“1” 客户1.发送数据(“昵称”+编辑框8.内容) .否则 播放MP3 (1, “lk.mp3”) 编辑框1.内容=编辑框1.内容+“连接:”+编辑框6.内容+“失败”+#换行符.如果结束 .否则 信息框(“请填写你的昵称”, 48, “提示”) .如果结束

局域网文件共享软件Mobox实现企业文档管理

局域网文件共享软件Mobox实现企业文档管理 随着信息技术的发展和网络的普及,各类企业每天都会有各种应用系统在产生大量的电子文档,如设计图纸、销售订单,合同文本,等等。如何利用、管理种类日趋繁多的电子文档已成为如何提升企业管理绩效的一大课题。局域网文件共享软件帮助企业解决这一难题。 其实,绝大部分企业不管是否有很强的文档管理意识,都或多或少地在做文档管理和文件共享的相关工作。比如有的公司采用FTP服务器作为企业的文档存放空间。 有的企业在内网用一台windows服务器做文件共享等等。但是全面有效管理企业文档管理来说,还是不够的或者说没有形成一个很好的由简到繁的管理体系。 局域网文件共享软件Mobox,一站式满足文件的安全存储、高效协同、移动办公等各种不同的业务需求,在保护企业内容资产安全的基础上,为广大企业提供安全、高效、便捷的文件使用环境。 Mobox享存就是提供了一整套适合企业电子文档管理 的由简到繁整体解决方案。 Mobox三步曲:

文档集中网络存储 个人网盘 1)首先将分散在个人机器上的文件有序集中网络存储,实现网络存储备份 文档共享管理 部门级文档管理 2)其次实现个人或部门级别的文件共享、权限管理 文档管理 企业级文档管理目前还没有提供 最终实现企业级的文档管理,全文检索、流程控制、版本控制等 Mobox 、Mobox个人网盘实现功能 1)为个人提供一个网络存储空间网络硬盘 2)将重要文件备份到网络硬盘 3)将个人文件共享给他人 2、Mobox个人网盘功能

与windwos本地盘文件操作基本一致无需培训部署后就能使用可以与AM 无缝集成 3)网盘在企业内部部署员工可以在不上外网的情况下也 能直接使用企业分配给他的网络硬盘。其次,享存MoBox 可以将网络硬 盘服务映射到外网,这样若有员工出差在外,也可以直接使用企业内部 的网络硬盘空间了。 2)信任及安全 因为是企业提供给企业员工内部使用的,所以系统不会有广告信息。有 的也是企业本身的公告及通知。当然,这些重要的工作文件敏感文件

局域网即时聊天程序的设计与实现论文

摘要 局域网即时聊天通过进行文本聊天和语音聊天来实现彼此沟通、交流信息。 本次局域网即时聊天程序设计主要用了Visual C++编程环境,实现了在LAN中 在线用户的文本、语音交互。 在设计里涉及到了网络通信基本原理和Socket编程及语音处理API技术。 由于程序是在TCP/IP环境下运行,所以分服务器端和客户端。服务器端和客户 端是通过建立Socket链接来实现聊天功能。 本次设计主要着重于语音聊天部分,在本次论文里主要以语音聊天的流程和 各模块之间的关系及Socket处理为主说明。 关键词: Visual C++编程环境网络通信基本原理 Socket编程语言处理API

Abstract The local area network chats immediately through carries on the text to chat with the pronunciation chats realizes each other communication, the exchange information. This local area network chatted the programming mainly to use Visual immediately the C++ programming environment, has realized in LAN the on-line user's text the pronunciation interactive Involved in the design to the network correspondence basic principle and the socket programming and the pronunciation processes the API technology. Because the procedure is in TCP Under the IP environment moves, therefore divides the server end and the client side. The server end and the client side are through establishes Socket to link realizes chats the function. This design mainly emphatically chats in the pronunciation the part, mainly between the flow and various modules relations and the socket processing which chats by the pronunciation primarily explained in this paper. Keywords:Visual C++ programming environment network communication fundamentals Socket programming sound API.

WIN7和XP系统在局域网文件共享设置方法

WIN7/XP系统在局域网文件共享设置方法 现代家庭,多数都有2台以上电脑,我家就有两台笔记本,一台台式机。笔记本因为买得晚通常配置较高,一般装的是WIN7系统,而台式机配置因为买的早配置相对较低,一般装的是XP系统。有时候想把台式机中的文件移到笔记本上,亦或是把笔记本中的文件移到台式机上,如果文件小用个U盘也挺方便,如果是几个G或者几十个G的话你会不会觉得相当纠结?学习了本文的设置方法你就再也不需要纠结了。好了,废话少说,现在开始学习局域网中文件共享的设置方法。 Windows XP和Windows 7系统的计算机通过局域网互联时,经常出现安装Windows XP系统的计算机很难在网上邻居中找到安装Windows 7系统的计算机的情况,反之也一样。具体表现就是网上邻居中可以显示计算机名但无法访问,或者根本找不到对方的计算机。 问题分析 在访问权限方面,WIN7确实做了诸多限制,通过对WindowsXP 和Windows7操作系统的设置,可以实现Windows 7 和Windows XP系统的局域网互连互通以及文件共享。 设置前必须先要关闭系统的防火墙(Mcafee、诺顿等)。若必须使用防火墙功能,建议用户咨询一下杀毒软件公司具体的局域网的权限设置方法。

解决方案 一、WindowsXP系统的设置方法: 设置共享可能对你电脑中的资料安全有负面影响,自己要对保密、安全、共享之间作个平衡。为了提高安全性,建议使用NTFS 磁盘格式,并对隐私文件设置读写权限。 1、WIN7系统设置方法: 选择要共享的文件夹 电脑常识 右键点击文件夹属性

设置文件夹高级共享选项

基于Qt的p2p局域网聊天和文件传输软件要点

基于Qt的局域网聊天和文件传输软件设计 摘要 随着计算机网络技术的飞速发展,人们对于网络的依赖性也越来越大。通过网络的局域网通信也越来越受到人们的喜爱,比如说现在非常流行的QQ局域网通信软件就解决了人们在网络中交流的需求。 基于Qt的P2P局域网聊天和文件传输软件,是基于TCP/IP协议中的TCP 和UDP协议完成的一个能够完成局域网通信和传输文件的软件,该软件实现了局域网内的通信,使用该软件作为通信和传输文件的工具,既简单又安全。 关键词:计算机网络, TCP, UDP , 文件传输; Abstract With the rapid development of computer network technology, people are more and more dependent on the network. Instant messaging via the Internet has become more and more popular, for example, it is now very popular QQ instant messaging software to solve the needs of people in the network communication. Based on P2P instant chat and file transfer software is based on TCP / IP protocol in the TCP and UDP protocols to complete a to complete the instant messaging and file transfer software, the software realized the LAN communication, the use of the software as a communication and file transfer tool, which is simple and safe. Key word:computer network,TCP, UDP , file transfer;

毕业设计论文 基于JAVA局域网聊天软件

本科毕业论文(毕业设计) 题目:局域网聊天 摘要 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,例如,国外的ICQ、国内腾讯公司开发的OICQ。基于Java网络编程的强大功能,本次毕业设计使用Java编写一个聊天系统。 一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用SQL Server2000完成并通过JDBC-ODBC桥访问数据库。 本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用Eclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 聊天系统完成后将可进行多人对多人的聊天,对好友进行添加、删除,对新用户的注册,发送消息、接受消息等等功能。 关键字:多线程;客户机/服务器;JA V A ;Socket ;Eclipse ;TCP/IP

Abstract as the network become more and more developed, people become more and more lean to the network, and can not leave with out it. This caused the chat materials become more numerous, as the overseas ICQ system, the OICQ system that invented by Tencent Co., and so on. So we create a network chat medium just like the QQ.Java network programming based on the power, the use of Java designed to prepare graduates a chat system. In general, the majority of the chat tool for client and server program in addition to server-side storage of customer data for the database,the system uses a client / server architecture model the adoption of Java provided Socket class connect client and server and between the client and server communicate with each other, as the chat is to provide point-to-multipoint and multi-threaded Java function to be completed by using multi-threaded chat and more point-to-multipoint, database management system with SQL Server2000 the completion and adoption of JDBC-ODBC Bridge access the database. The system built on the JAVA platform, the system design using object-oriented technology and object-oriented design principles. System uses the C / S structure, client and client-side and server-side client and send messages through Socket. The use of JAVA language, development tools using Eclipse. Design and Implementation of server-side process, the use of multi-threading technology, which can process in a single run at the same time a number of different threads, the implementation of different tasks. Procedures greatly enhanced the use of server resources.

C语言用UDP 实现局域网聊天程序源码

#include #include #include #include #include #include #include #include #define CLIENT_LOGIN 100 #define CLIENT_CHAT 200 #define CLIENT_QUIT 300 #define SERVER_CHA T 400 #define SERVER_QUIT 500 struct node { char name[20]; struct sockaddr_in client_addr; struct node *next; }; struct message { long type; char name[20]; char mtext[512]; }; struct node *create_list(void); void insert_list(struct node *, char *, struct sockaddr_in *); void delete_list(struct node *, char *); void recv_message(int , struct node *); void send_message(int , struct sockaddr_in *, pid_t ); void client_login(int , struct node *, struct message *, struct sockaddr_in *); void client_chat(int , struct node *, struct message *); void client_quit(int , struct node *, struct message *); void server_chat(int , struct node *, struct message *); void server_quit(int , struct node *, struct message *);

局域网聊天软件

通信软件设计三级项目任务书 一、题目:局域网聊天软件分析 二、班级: 三、小组成员: 四、起止时间:第六学期第十六周2012-6-4~2012-6-9 五、设计要求与思路: 通过Ethereal抓包,认真分析飞秋的工作原理、实现方法和工作协议等,并仿照飞秋、设计实现一个简单的局域网聊天软件,尽量能够做到与飞秋兼容。 设计思路:先使用飞秋,熟悉飞秋的功能;深入分析每一部分的功能实现;通过防火墙观察飞秋使用的套接字情况,并抓包分析飞秋在使用过程中的网络数据传输,分析飞秋的应用协议,分析设计实现简单的聊天软件,实现好友列表维护和文本消息传送等功能。 六、主要任务: 1、深入理解TCP和UDP的工作原理和服务的特性,掌握套接字编程机制和方法; 2、理解C/S架构和P2P两种应用模式; 3、深入分析飞秋的功能、工作原理、应用协议等; 4、完成局域网聊天软件的分析、开发与调试; 5、在设计报告中对飞秋进行全面和深入的剖析; 6、按照格式要求撰写设计报告。 学生(签字): 指导教师(签字): 系主任(签字):院长(签字):

1、设计要求与任务 通过Ethereal抓包,认真分析飞秋的工作原理、实现方法和工作协议等,并仿照飞秋、设计实现一个简单的局域网聊天软件,尽量能够做到与飞秋兼容。 先使用飞秋,熟悉飞秋的功能;深入分析每一部分的功能实现;通过防火墙观察飞秋使用的套接字情况,并抓包分析飞秋在使用过程中的网络数据传输,分析飞秋的应用协议,分析设计实现简单的聊天软件,实现好友列表维护和文本消息传送等功能。主要任务:深入理解TCP和UDP的工作原理和服务的特性,掌握套接字编程机制和方法;理解C/S架构和P2P两种应用模式;深入分析飞秋的功能、工作原理、应用协议等;完成局域网聊天软件的分析、开发与调试;在设计报告中对飞秋进行全面和深入的剖析。 2、设计正文 2.1、飞秋分析 飞秋是一款局域网聊天传送文件的绿色软件,它参考了飞鸽传书(IPMSG)和QQ, 完全兼容飞鸽传书(IPMSG)协议,具有局域网传送方便,速度快,操作简单的优点,同时具有QQ中的一些功能,是飞鸽的完善代替者,另外,飞秋支持语音,远程协助群聊天(不需要服务器),它参考了飞鸽传书(FreeEIM)和QQ, 完全兼容飞鸽传书协议,具有局域网传送方便,速度快,操作简单的优点,同时具有QQ中的一些功能。 2.1.1、飞秋的工作原理 上线通知:对于飞秋而言,最关键的是局域网用户列表的建立;飞秋启动时使用UDP协议向255.255.255.255这个广播地址发送广播包,默认端口是2425。广播包内容包含用户名、工作组、主机名、IP等信息;已启动飞秋的用户通过2425端口收到此广播包后,就会在自己的用户列表中添加这个用户的用户名、工作组等信息,同时向对方IP发送本机用户的个人信息;从而双方都能建立起用户列表。 聊天过程:飞秋在刷新用户列表时发送的广播包和启动时差不多,只不过返回的标识信息略有不同;可以做一个小工具,监控2425端口内存流,就能截获刷新和聊天时的消息。飞秋在传送聊天信息时同样使用UDP协议;由于UDP协议是无连接协议,传输速度快,但是没有确认机制,是不可靠的协议,需要自己定义返回信息的标志来判断对方是否收到信息。 离线通知:用户离线时发送一个离线广播包到255.255.255.255,收到此广播包的用户,根据包中的IP地址(也可能是多种判断标志或者包含硬件标识,比如网卡地址等)删除对方的用户列表信息;

教你用局域网共享文件管理软件来管理服务器共享文件访问

教你用局域网共享文件管理软件来管理服务器共享文件访问 作者:大势至日期:2013.12.13 说到共享文件审计这一功能近几年用的越来越多,也是由于网络共享越来越广泛,从普通用户层面上来看现在各大运营商的”带宽“越来越”宽“,以至于不忍浪费这么好的资源,曾几何时我个人也想过将自己多年来收藏的资源拿来共享一下,做一个简单的服务器放在互联网中共享,但又害怕不安全; 从企业用户层面上来讲文件服务器的安全性也越来越重要,常常在服务器上共享一些重要的文件供局域网用户使用,极大地方便了企业内部资源、信息、文件的交换和使用。但是,由于缺乏对局域网用户访问共享文件的管理和控制,使得员工访问共享文件的各种操作行为,如读取、修改、删除、剪切和重命名等无法有效管理和记录,从而一旦员工私自拷贝和窃取公司的商业机密也无法进行有效的查证和防范,同时如果员工不小心或有意删除共享文件的行为也无法进行有效的预防和保护,从而容易给企业带来巨大风险和重大损失。而如果通过服务器配置不同用户,设定不同权限来限制员工访问共享文件的方式,由于操作极为复杂,在企业员工数量较多的情况下,工作量也极大,从而不利于有效管理共享文件、监控共享文件的使用,也无法有效保护单位的商业机密和信息安全。因此,企事业单位迫切需要一套专门的共享文件监控软件、局域网共享软件来记录局域网用户对共享文件的各种操作,同时有效防止员工有意或不小心删除共享文件而给企业带来的重大损失。 因此今天分享一款文件审计系统——大势至共享文件审计系统(百度搜索“大势至共享文件审计系统”下载吧),可能普通用户拿来做日常简单的安全防护来用、更多的是推荐给大中型企事业单位来用。 软件名称:大势至共享文件审计系统V3.1 软件语言:简体中文

简单的局域网聊天程序试验报告

青岛理工大学 C++面向对象课程设计报告 院(系):计算机工程学院 专业:软件工程 学生姓名:__ 班级:__软件102学号: 201007190 题目:_局域网聊天程序________起迄日期:_2012.6.18~2012.6.29 设计地点:计算机学院机房 指导教师: 完成日期: 2012 年6月 29 日

课程设计报告内容(供参考) 一、需求分析当前是数字信息时代,网络时代,任何一种编辑工具都不能忽视在网络上的应用,并且随着Internet 的普及和宽带技术的成熟,越来越多的用户进入网络世界中享用浏览新闻、查询信息、发送邮件、在线观看电影等服务,享受网络带来的便利和办公的高效,与此同时一个新型的Web应用程序为网民之间提供了一个实时通信的功能和场所,这就是聊天室。 在网络早期就开始盛行,不论是BBS,IRC 都有类似网上聊天室的机制。聊天室为网友提供了实时性对话的渠道,是网络上极为流行的一项服务。 聊天室适用于网上会议或闲聊的一些场合。聊天室为网友提供了较好的交友环境,网友之间相互以文字交谈,在形式上有点类似笔友的性质,却大大节省了书信往返的时间,这也是网上交友之所以如此热门的原因。 聊天室的设计目标 本课题是建立聊天通信模型,设计一个聊天室软件,包括服务器端和客户端,主要功能为: 服务器端功能: 1、初始化socket, 创建服务器端。 2、维护一个链表,保存所有用户的IP地址、端口信息。 3、接受用户传送来的聊天信息,然后向链表中的所用用户转发。 4、接受用户传送来的连接判断命令,并向用户发出响应命令。 1. 二、设计内容 SOCKET连接过程 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。 如何开发一个Server-Client模型的程序

相关文档
最新文档