课程设计局域网聊天程序设计汇总.docx
- 文档编号:1487311
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:26
- 大小:148.36KB
课程设计局域网聊天程序设计汇总.docx
《课程设计局域网聊天程序设计汇总.docx》由会员分享,可在线阅读,更多相关《课程设计局域网聊天程序设计汇总.docx(26页珍藏版)》请在冰豆网上搜索。
课程设计局域网聊天程序设计汇总
课程设计(论文)说明书
题目:
局域网聊天程序设计
院(系):
信息与通信学院
专业:
信息对抗技术
学生姓名:
张三
学号:
XXXXXXX
指导教师:
XXXXXX
职称:
XXXXXX
2010年12月15日
摘要
即时通讯软件的出现正在逐渐改变人们的沟通与交际方式。
无论近在咫尺,还是远隔重洋,也只是在键盘和鼠标之间就可以解决问题。
网络聊天程序越来越影响着我们的网络生活。
习惯了通过类似ICQ、QQ、MSN之类的聊天软件和天南海北的朋友聊天,但是这些聊天程序都需要Internet的支持,而无法在局域网内部“大显身手”。
那么你是否想到过要让单位内部的员工和寝室周围的同学,不用上Internet就可以轻松体验到局域网聊天的快乐呢?
有了这种想法,开发局域网聊天工具就有了必要性。
本论文讨论了Windows环境下局域网聊天程序的设计思路和设计方法。
其中网络通信部分采用流行的TCP/IP协议。
程序采用典型的C/S(服务器/客户端)构架。
用socket编程设计网络通讯。
界面设计部分采用WindowsMFC框架。
本文最终设计了一个简易版本的聊天软件,包括登陆、退出、消息收/发等功能。
关键词:
局域网聊天;SocketsAPI;C/S构架;WindowsMFC
Abstract
Gradually,real-timecommunicatesoftwarearechangingourwayofcommunication.Nomatterhawcloseathandorhowfarbyvastoceanspeopleareseparated,theyjustcanchatbetweenmouseandkeyboard.Networkchattingprogramhasagradualimportantinfluenceonourlife.
Allofusareusedtochattingwithfriendsfromalloverthecountrybysomepopularchattools,suchasICQ,QQ,MSN.However,thesechattoolsmustrelyonsupportofInternet.WithoutInternet,theyareuseless.Basedonthiskindofsituation,doyoueverthoughtthatunitstaffanddormitoryroommatescouldenjoythehappinessofLANchateasilywithoutlogginginInternet?
Relyingonthisidea,it'snecessarytodesignakindofLANchattool.
ThisarticlediscusseshowtodesignanddevelopaLANchattingprograminWindowsenvironment.ThenetworkcommunicationpartdependsonthepopularTCP/IPprotocol.SoftwareisbasedonC/Sarchitecture.NetworkcommunicationisdevelopedwithSocket.UIisdesignedwithWindowsMFCframe.Thearticledescribesaconcisechartsoftwareversion,withthefunctionofloggingin/out,addingfriendtolist,sending/receivingmessageandsoon.
Keywords:
LANchatting;SocketsAPI;C/Sarchitecture;WindowsMFCframe
引言
在网络越来越发达的今天,人们对网络的依赖性也越来越大,由此而产生的聊天工具也越来越多,如MSN、QQ、ICQ等,然而这些聊天工具如果没有了Internet的支持的话人们将无法使用他们进行聊天交流,即使通信双方在同一个局域网中也一样。
本次课程设计的内容就是一种局域网聊天软件,它无需Internet的支持,可以让用户们不用出内网就能自由聊天。
1设计目的
本次课程设计运用TCP/IP、Socket多线程编程,用VC++6.0实现局域网内多用户的聊天功能。
2功能描述
本系统是类似于QQ的局域网聊天软件,包括服务器端和客户端程序,采用TCP/IP、Socket多线程编程,主要功能有:
局域网内的客户可实时进行聊天;每个客户既是聊天的发起端,又是接收端,实现了多点同时聊天。
3WindowsSocket网络编程的研究
3.1TCP/IP体系结构
3.1.1TCP/IP简介
TCP/IP作为Internet的核心协议,通过近二十多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。
TCP/IP协议集确立了Internet的技术基础。
TCP/IP协议主要作用于OSI网络参考模型中的网络层(第3层)、传输层(第4层)和应用层(第7层)。
数据链路层(第2层)的功能主要应用于其它协议如以太网(Ethernet)、ATM、帧中继(FrameRelay),以及多数供应商特定协议等。
TCP/IP充分支持所有通用第2层协议。
TCP/IP组中的应用程序通常直接运行于传输层协议TCP或UDP上面,并不需要表示层(第6层)和会话层(第5层)的支持。
3.1.2TCP/IP的特点
TCP/IP协议的核心部分是传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中设计。
因此用户一般不涉及。
编程时,编程界面有两种形式:
一、是由内核心直接提供的系统调用;二、使用以库函数方式提供的各种函数。
前者为核内设计,后者为核外设计。
用户服务要通过核外的应用程序才能设计,所以要使用套接字(socket)来设计。
3.2基本套接字
下面给出几个基本的套接字,这些套接字的使用贯穿了网络编程的始末,主导了数据通信的过程。
这将在以后的篇幅中会给出更详细的使用说明。
3.2.1创建套接字——socket()
功能:
使用前创建一个新的套接字
格式:
SOCKETPASCALFARsocket(intaf,inttype,intprocotol);
参数:
af:
通信发生的区域
type:
要建立的套接字类型
procotol:
使用的特定协议
3.2.2指定本地地址——bind()
功能:
将套接字地址与所创建的套接字号联系起来。
格式:
intPASCALFARbind(SOCKETs,conststructsockaddrFAR*name,intnamelen);
参数:
s:
是由socket()调用返回的并且未作连接的套接字描述符(套接字号)。
其它:
没有错误,bind()返回0,否则SOCKET_ERROR
地址结构说明:
structsockaddr_in
{
shortsin_family;//AF_INET
u_shortsin_port;//16位端口号,网络字节顺序
structin_addrsin_addr;//32位IP地址,网络字节顺序
charsin_zero[8];//保留
}
3.2.3建立套接字连接——connect()和accept()
功能:
共同完成连接工作
格式:
intPASCALFARconnect(SOCKETs,conststructsockaddrFAR*name,intnamelen);
SOCKETPASCALFARaccept(SOCKETs,structsockaddrFAR*name,intFAR*addrlen);
参数:
同上
3.2.4监听连接——listen()
功能:
用于面向连接服务器,表明它愿意接收连接。
格式:
intPASCALFARlisten(SOCKETs,intbacklog);
3.2.5数据传输——send()与recv()
功能:
数据的发送与接收
格式:
intPASCALFARsend(SOCKETs,constcharFAR*buf,intlen,intflags);
intPASCALFARrecv(SOCKETs,constcharFAR*buf,intlen,intflags);
参数:
buf:
指向存有传输数据的缓冲区的指针。
3.2.6多路复用——select()
功能:
用来检测一个或多个套接字状态。
格式:
intPASCALFARselect(intnfds,fd_setFAR*readfds,fd_setFAR*writefds,
fd_setFAR*exceptfds,conststructtimevalFAR*timeout);
参数:
readfds:
指向要做读检测的指针
writefds:
指向要做写检测的指针
exceptfds:
指向要检测是否出错的指针
timeout:
最大等待时间
3.2.7关闭套接字——closesocket()
功能:
关闭套接字s
格式:
BOOLPASCALFARclosesocket(SOCKETs)。
3.3客户机/服务器模式
在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Servermodel)。
该模式的建立基于以下两点:
1、非对等作用;2、通信完全是异步的。
客户机/服务器模式在操作过程中采取的是主动请示方式:
首先服务器方要先启动,并根据请示提供相应服务,过程如下所示:
(1)打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。
(2)等待客户请求到达该端口。
(3)接收到重复服务请求,处理该请求并发送应答信号。
(4)返回第二步,等待另一客户请求。
(5)关闭服务器。
客户方:
(1)打开一通信通道,并连接到服务器所在主机的特定端口。
(2)向服务器发送服务请求报文,等待并接收应答;继续提出请求。
(3)请求结束后关闭通信通道并终止。
3.4WINDOWSSOCKETS程序设计
3.4.1WINDOWSSOCKETSAPI简介
VC++对网络编程的支持有socket支持,WinInet支持,MAPI和ISAPI支持等。
其中,WindowsSocketsAPI是TCP/IP网络环境里,也是Internet上进行开发最为通用的API。
最早美国加州大学Berkeley分校在UNIX下为TCP/IP协议开发了一个API,这个API就是著名的BerkeleySocket接口(套接字)。
在桌面操作系统进入Windows时代后,仍然继承了Socket方法。
在TCP/IP网络通信环境下,Socket数据传输是特殊的I/O,它也相当于文件描述符,具有一个类似于打开文件的函数调用-socket()。
可以这样理解:
Socket实际上是一个通信端点,通过它,用户的Socke
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 局域网 聊天 程序设计 汇总