局域网文件传输和聊天系统.doc
《局域网文件传输和聊天系统.doc》由会员分享,可在线阅读,更多相关《局域网文件传输和聊天系统.doc(23页珍藏版)》请在沃文网上搜索。
1、局域网文件传输和聊天系统摘要:本课程设计包含了文件传输协议的简单设计与实现和两人聊天系统的设计与实现。学会利用已有网络环境设计并实现简单应用层协议,掌握TCP/IP网络应用程序基本的设计方法和实现技巧,加深对客户/服务器的工作模式的认识。初步练习基于TCP/IP网络编程的基本实现方法和思路,同时进一步熟悉计算机网络课程中基于IP层协议的工作机制。本设计完全用C语言编写,其中包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,调试过程中出现的问题及相应解决办法,核心程序,个人体会及建议等。关键词:IP层协议,TCP/IP网络编程1 具体设计任务计算机网络实验环境建立在TCP/IP 网络体
2、系结构之上。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。实验室各计算机安装了VC+6.0,可对C语言进行编译,可为用户提供全网范围的进程通信功能。本实验要求利用这些功能,设计和实现一个简单的文件传送协议和两人聊天系统。2基本思路及所涉及的相关理论2.1基本思路 设计程序使客户端连接的时候,服务器将会向客户端发回一条消息告知它的IP地址,然后关闭连接并继续接收端口的连接。建立各个命令功能对应的函数,发送请求,等待服务器端的服务。服务器端确认IP地址,获取主机信息,并对客户端进行会话,发送回复讯息给客户端,响应完毕后关闭连接,释放。2.2 相关理论 文件传送是各种计算机网
3、络都实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。计算机网络实验环境建立在TCP/IP 网络体系结构之上。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。实验室各计算机具备Windows环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。本设计利用这些功能,设计和实现一个简单的文件传送协议和两人聊天系统。用C语言可以简单的实现。3 设计流程图4 部分截图5 核心程序 #include #include #include #include #includ
4、e #include #pragma comment(lib,Ws2_32)#define M 512000 /每块传送文件的大小500k#define portNum 8888 /使用的端口号void LongToChar(long x,char a);/将long型整数转换成字符串long StrToLong(char str);/将字符串转换成long型整数void getW_name(char waddr,char wname); /获取文件名函数void sendFile(SOCKET ss); /服务端发送文件函数int receiveFile(SOCKET sc);/客户端接收文
5、件函数void chatting_client(SOCKET sc); /客户端聊天函数void chatting_server(SOCKET s_d); /服务端聊天函数int client(); /客户端主程序void server(); /服务端主程序void main()system(cls);system(color 0a);puts(n);puts( *);puts( * * );puts( * 欢迎使用局域网文件发送工具 *);puts( * * );puts( * * );puts( * * );puts( * 1. 客 户 端 * );puts( * * );puts( *
6、2. 服 务 端 * );puts( * * );puts( * 3. 结 束 * );puts( * * );puts( * * );puts( * 蓝天雄鹰 制作 * );puts( * 2012-6-20 * );puts( * 蓝鹰展翅气吞天下 * );puts( *n);puts(全屏(退出全屏)操作请按:ALT+ENTERn);printf(请输入你要选择的端代号(1-3):);char ch;char Num10;gets(Num);ch=Num0;while(ch =4 | ch =0)/检测用户选择的代码是否符合要求printf(n你的输入有误!请重新输入:);gets(Nu
7、m);ch=Num0;if(1=ch)client();else if(2=ch)server();else if(3=ch)exit(0);int client()system(color 0a);/修改DOS窗口颜色,是其成0A。WORD wVersion=MAKEWORD(1,1); WSADATA wsData; int nResult= WSAStartup(wVersion,&wsData); /启动WINSOCKETif(nResult !=0) printf(启动Winsock失败!n); SOCKET sc=socket(AF_INET,SOCK_STREAM,IPPROTO
8、_IP); /创建套接字if(sc=INVALID_SOCKET) printf(创建套接字失败!n); SOCKADDR_IN addrSc;addrSc.sin_family=AF_INET; addrSc.sin_port=htons(portNum); /保证字节顺序 char IP20;again:printf(请输入服务器的IP地址:);gets(IP);if( -1=inet_addr(IP) ) /循环检测IP地址是否合法printf(IP地址错误!n);goto again;addrSc.sin_addr.S_un.S_addr=inet_addr(IP); int b=0;
9、while(b5) /检测5次,如果服务器在此时间内启动,则进行连接nResult=connect(sc,(SOCKADDR*)&addrSc,sizeof(SOCKADDR); /套接字连接Sleep(DWORD)100);/延时1秒if(nResult=SOCKET_ERROR) printf( %d 次连接失败!n,b+1);elsebreak;b+;if(nResult=SOCKET_ERROR)printf(登陆超时,请重新登陆!n);goto again;char *buf=连接成功!; /向服务端验证连接成功nResult=send(sc,buf,strlen(buf)+1,0)
10、; if(nResult=SOCKET_ERROR) printf(5.套接字发送数据失败!n);return 0;char messM;nResult =recv(sc,mess,strlen(mess),0); /接受服务端的连接验证信息if(nResult = -1 ) /判断服务端是否关闭printf(n服务端已断开n);system(pause);exit(0);printf(%sn,mess);/ 功能菜单及操作 /tianle:system(cls); /清屏puts(nn);puts( *);puts( * * );puts( * 欢迎使用局域网文件发送工具 *);puts(
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 局域网 文件传输 聊天 系统