局域网飞鸽传书毕业论文

c局域网聊天系统毕业论文

1.毕业论文《基于socket 的局域网聊天工具》,要求C++语音编写,要

“对图中的那些函数,我这里稍加解释一下。”

int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData); 功能是初始化Windows Socket Dll,在Windows下必须使用它。参数:“wVersionRequested”表示版本,可以是1.1、2.2等;“lpWSAData”指向WSADATA数据结构的指针。

int socket(int family, int type, int protocol); 功能是建立Socket,返回以后会用到的Socket值。如果错误,返回-1。

参数:“int family”参数指定所要使用的通信协议,取以下几个值:AF_UNIX(Unix内部协议)、AF_INET(Internet协议)、AF_NS Xerox(NS协议)、AF_IMPLINK(IMP连接层),在Windows下只能把“AF”设为“AF_INET”;“int type”参数指定套接字的类型,取以下几个值:SOCK_STREAM(流套接字)、SOCK_DGRAM (数据报套接字)、SOCK_RAW(未加工套接字)、SOCK_SEQPACKET(顺序包套接字);“int protocol”参数通常设置为0。int bind(int sockfd, struct sockaddr *my_addr, int addrlen); 功能是把套接字和机器上一定的端口关联起来。

参数:“sockfd”是调用socket()返回的套接字值;“my_addr”是指向数据结构struct sockaddr的指针,它保存你的地址,即端口和IP地址信息;“addrlen”设置为sizeof(struct sockaddr)。 int listen(int sockfd, int backlog); 功能是服务端监听一个端口,直到accept()。

在发生错误时返回-1。参数:“sockfd”是调用socket()返回的套接字值;“backlog”是允许的连接数目。

大多数系统的允许数目是20,也可以设置为5到10。 int connect(int sockfd, struct sockaddr *serv_addr, int addrlen); 功能是客户端连接服务端监听的端口。

参数:“sockfd”是调用socket()返回的套接字值;“serv_addr”保存着目的地端口和IP 地址的数据结构struct sockaddr;“addrlen”设置为sizeof(struct sockaddr)。 int accept(int sockfd, void *addr, int *addrlen); 功能是服务端接受客户端的连接请求,并返回一个新的套接字,以后服务端的数据传输就使用这个新的套接字。

如果有错误,返回-1。参数:“sockfd”是和listen()中一样的套接字值;“addr”是个指向局部的数据结构sockaddr_in的指针;“addrlen”设置为sizeof(struct sockaddr_in)。

int send(int sockfd, const void *msg, int len, int flags);int recv(int sockfd, void *buf, int len, unsigned int flags);功能是用于流式套接字或数据报套接字的通讯,我们数据的真正传输就由它们完成。参数:“sockfd”是发/收数据的套接字值;“msg”指向你想发送的数据的指针;“buf”是指向接收数据存放的地址;“len”是数据的长度;“flags”设置为 0。

int sendto(int sockfd, const void *msg, int len, unsigned int flags,const struct sockaddr *to, int tolen);int recvfrom(int sockfd, void *buf, int len, unsigned int flags, struct sockaddr *from, int *fromlen);功能和send、recv类似,不过是用于无连接数据报套接字的传输。 int closesocket(int sockfd) 功能是关闭套接字。

参数“sockfd”为要关闭的套接字值。程序:“这里的目的是让大家对Socket编程有个整体了解。

不用怕,程序我会详细解释的,首先是服务端的程序。其流程是: socket()→bind()→listen→accept()→recv()/send()→closesocket() 具体代码如下:”★#include #include #pragma comment(lib,"Ws2_32")#define MYPORT 830 /*定义用户连接端口*/ #define BACKLOG 10 /*多少等待连接控制*/ int main() { int sockfd, new_fd; /*定义套接字*/ struct sockaddr_in my_addr; /*本地地址信息 */ struct sockaddr_in their_addr; /*连接者地址信息*/ int sin_size; WSADATA ws; WSAStartup(MAKEWORD(2,2),&ws); //初始化Windows Socket Dll //建立socket if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { //如果建立socket失败,退出程序 printf("socket error\n"); exit(1); } //bind本机的MYPORT端口 my_addr.sin_family = AF_INET; /* 协议类型是INET */ my_addr.sin_port = htons(MYPORT); /* 绑定MYPORT端口*/ my_addr.sin_addr.s_addr = INADDR_ANY; /* 本机IP*/ if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))== -1) { //bind失败,退出程序 printf("bind error\n"); closesocket(sockfd); exit(1); } //listen,监听端口 if (listen(sockfd, BACKLOG) == -1) { //listen失败,退出程序 printf("listen error\n"); closesocket(sockfd); exit(1); } printf("listen。

"); //等待客户端连接 sin_size = sizeof(struct sockaddr_in); if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1) { printf("accept error\n"); closesocket(sockfd); exit(1); } printf("\naccept!\n"); //有连接,发送ww0830字符串过去 if (send(new_fd, "ww0830\n", 14, 0) == -1) { printf("send error"); closesocket(sockfd); closesocket(new_fd); exit(1); } printf("send ok!\n"); //成功,关闭套接字 closesocket(sockfd); closesocket(new_fd); return 0;}对服务端程序的流程概括:先是初始化Windows Socket Dll: WSAStartup(MAKEWORD(2,2),&ws); 然后建立Socket: sockfd 。

2.《基于Socket的C/S模式的局域网聊天室》的毕业设计

代码贴出来,也没工夫写额,以前在学校我做过,我把我的思路给你好了,首先写出服务端和客户端,多线程实现收发,支持点对点聊天,如果这些LZ不会,那就先去看看基础吧,在此基础上,创建登录用户类,有用户ID(String),昵称和socket属性,一个房间管理类,用来管理私聊,群聊或者2个以上人的聊天,有一个MAP属性,以聊天者ID相加的值为建,以保存所有聊天者socket的List为值,其中群聊是MAP的默认属性,登陆一个用户,value就添加他socket,当用户选择一个人私聊,或者几个人群聊时,MAP创建相应的映射,就这样了,当时我是全部实现了,但在关闭socket时有些问题。

具体逻辑和其中BUG,自己调和写吧,例如用ID相加为建有时会有问题。

3.《基于Socket的C/S模式的局域网聊天室》的毕业设计

代码贴出来,也没工夫写额,以前在学校我做过,我把我的思路给你好了,首先写出服务端和客户端,多线程实现收发,支持点对点聊天,如果这些LZ不会,那就先去看看基础吧,在此基础上,创建登录用户类,有用户ID(String),昵称和socket属性,一个房间管理类,用来管理私聊,群聊或者2个以上人的聊天,有一个MAP属性,以聊天者ID相加的值为建,以保存所有聊天者socket的List为值,其中群聊是MAP的默认属性,登陆一个用户,value就添加他socket,当用户选择一个人私聊,或者几个人群聊时,MAP创建相应的映射,就这样了,当时我是全部实现了,但在关闭socket时有些问题。

具体逻辑和其中BUG,自己调和写吧,例如用ID相加为建有时会有问题。

4.基于VC局域网即时聊天程序的设计与实现

1) CserverSocket 是服务器端Socket类,关于这部分的核心代码为: BOOL CserverSocket::Init(UNI port, CChatDlg* dlg)//服务器端初始化 { m_uPort=port; m_dlg=dlg; if(Create(m_uPort)==FALSE) { AfxMessageBox(“Server Socket Create Error”); Return FALSE; } if(this->Listen==FALSE) { AfxMessageBox(“Server Listen Error”); Return FALSE; } m_dlg->SetDlgItemText(IDC_SHOWTEXT,”Server Has Been Set OK!”); return TRUE; } void CserverSocket::OnAccept(int nErrorCode) { m_dlg->ProcessPendingAccept(); Csocket::OnAccept(nErrorCode); } 2) ClientSocket是客户端Socket类,关于这部分核心代码为: //通信Socket的初始化,一些关于传输数据串行化的操作 Void CClientSocket::Init(CChatDlg* dlg) { m_sfSocketFile=new CsocketFile(this); m_aSessionIn=new Carchive(m_sfSocketFile,Carchive::load); m_aSessionOut= new Carchive(m_sfSocketFile,Carchive::store); m_bClose=false; this->m_dlg=dlg; } //Socket接收到传输过来的数据的消息相应函数 void CClientSocket::OnReceive(int nErrorCode) { Csocket::OnReceive(nErrorCode); Do { Cmessg temp; Temp.Serialize(*m_aSessionIn); M_dlg->m_sMsgList+=temp.m_strText; M_dlg->SetDlgItemText(IDC_SHOWTEXT,m_dlg->m_sMsgList); //如果有声音过来并且本机的声音设备已经准备好,则在本机发出声音 以上参考于三七毕业设计论文网 ,希望能帮到你。

c局域网聊天系统毕业论文

转载请注明出处众文网 » 局域网飞鸽传书毕业论文

资讯

毕业设计网站论文

阅读(427)

本文主要为您介绍毕业设计网站论文,内容包括求几个毕业论文样本的网站,供参考.,高分求VB或网站程序论文和毕业设计,马上就毕业了,网站设计与制作的论文该怎么写。目前信息化技术的迅速普及和广泛应用,大量各行各业工作人员开始利用网络这种

资讯

关于信用社毕业论文

阅读(443)

本文主要为您介绍关于信用社毕业论文,内容包括我要写一份关于农村信用合作联社的论文,写什么题目的什么好呢?,信用社经济类毕业论文贷款方面的,能帮我写个关于某县农村信用社发展现状及分析的毕业论文的提纲搜。希望对你有所帮助。推荐一个

资讯

变频器在平网印花机设计与应用毕业论文设计

阅读(460)

本文主要为您介绍变频器在平网印花机设计与应用毕业论文设计,内容包括电气自动化论文题目,紧急需要“自行车上的物理知识”研究性学习论文,1500字以上,请大,急求一篇关于变频调速或者变频器的外文文献,要论文形式的搜狗。1. PLC控制花样喷

资讯

论善意取得毕业论文

阅读(414)

本文主要为您介绍论善意取得毕业论文,内容包括毕业论文善意取得制度创新之处,善意为话题写一篇议论文800字谢谢了,急!求助翻译论文摘要<论善意取得制度研究>。善意取得是《物权法》中的一项重要制度,关于善意取得制度的适用范围,主要有两种观

资讯

关于变频器的毕业论文

阅读(466)

本文主要为您介绍关于变频器的毕业论文,内容包括求毕业论文:变频器的设计,求PLC变频器毕业论文de外语参考文献,翻译求助——变频器等方面的专业论文的摘要。黄慧敏. 通用变频器应用中的问题及对策[J].矿山机械.2004(11)曹玉泉,王主恩. 异步

资讯

毕业设计科技小论文

阅读(409)

本文主要为您介绍毕业设计科技小论文,内容包括科技小论文可以写什么内容?,科技小论文400字,如何写科技小论文(3000字以内)?。比如;选好课题撰写科技小论文,首先要考虑写什么,也就是课题的选择。选择课题是写好论文的关键。要注意以下原则:价值

资讯

关于针棉织品染整专业毕业论文

阅读(470)

本文主要为您介绍关于针棉织品染整专业毕业论文,内容包括求一篇染整毕业论文,染整技术在毛发领域的应用论文,求一篇与染织专业有关的论文,1000到2000字左右~谢谢各位大神了~。进入21世纪,绿色环保纺织品成为纺织品种的新视点,在运用千变万化

资讯

毕业论文专家评阅意见

阅读(431)

本文主要为您介绍毕业论文专家评阅意见,内容包括论文评阅意见怎么写,大学毕业论文的评阅人评语怎么写,大学毕业论文的评阅人评语怎么写。研究生应按时认真完成学位论文并按照本学校研究生学位论文撰写要求中提出的有关事项和格式撰写论文。

资讯

子空间毕业论文

阅读(393)

本文主要为您介绍子空间毕业论文,内容包括子空间的交与和,子空间聚类文章簇集合并部分怎么写?,关于受限子空间图像识别的论文,中英文对照。最小二乘方法最早是有高斯提出的,他用这种方法解决了天文学方面的问题,特别是确定了某些行星和彗星的

资讯

广东金融学院毕业论文模板

阅读(426)

本文主要为您介绍广东金融学院毕业论文模板,内容包括金融学毕业论文,感觉好难啊,谁能发我几篇范文,金融学论文,怎么写,金融专业毕业论文范文。原发布者:zyling1208 对金融学的认识的论文金融市场交易之间不是单纯的买卖关系,更主要的是借贷关

资讯

会计信息失真的深层原因和对策研究毕业论文

阅读(403)

本文主要为您介绍会计信息失真的深层原因和对策研究毕业论文,内容包括有谁写过关于我国会计失真原因及对策的毕业论文,求助相关资料百,会计信息失真的原因及对策研究这个会计毕业论文好不好写,如果不,求《浅谈会计信息失真的成因与对策》的

资讯

本科毕业论文范文百度文库

阅读(371)

本文主要为您介绍本科毕业论文范文百度文库,内容包括毕业论文范文,本科毕业论文的标准格式及范文,求毕业论文、范文也可以。毕业论文格式论文题目:要求准确、简练、醒目、新颖。2、目录:目录是论文中主要段落的简表。(短篇论文不必列目录)3、提

资讯

汽车轮胎的保养与维护毕业论文

阅读(479)

本文主要为您介绍汽车轮胎的保养与维护毕业论文,内容包括汽车轮胎的日常维护毕业论文怎么写?,汽车轮胎的日常维护毕业论文怎么写?,汽车专业写一篇关于汽车轮胎的毕业论文。最初的气压轮胎是 1888年 英国的兽医 John Boyd Dunlop ,他先用橡胶

资讯

毕业论文一稿怎么写

阅读(398)

本文主要为您介绍毕业论文一稿怎么写,内容包括毕业论文一稿怎么写计算机专业记账本,毕业论文初稿怎么写,毕业论文如何写。按研究问题的大小不同可以把论文范文分、为宏观论文范文和微观论文范文。凡属国家全局性、带有普遍性并对局部工作有

资讯

一村一名大学生农业生产经营毕业论文

阅读(469)

本文主要为您介绍一村一名大学生农业生产经营毕业论文,内容包括求一篇发展新农村大学生1500字论文,急求一篇农村经济管理毕业论文,三千字左右谢谢!,经济管理毕业论文题目适度规模经营与农业现代化急!!。“建设社会主义新农村”是今年全党社