QQ编程思想

时间:2022-07-13 23:14:15 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
QQ编程思想:

用户在登录界面输入自己的用户名和密码之后,点击登录按钮,在用户机上的客户端程序首先请求与服务器端的程序建立连接,服务器端程序建立连接,接受客户端的连接请求,客户端在确保与服务器端保持连接的情况下发送登录时输入的用户名和密码,服务器端受到信息后,根据用户信息数据库中数据验证,如果验证为合法信息,客户端程序则显示聊天窗口,并从服务器端获取在线好友信息,以便直接与各在线好友建立新的连接,实现直接通信。

QQ聊天程序采用C/S(客户/服务器端)通信模式,将一个应用划分为不同的两个部分,分别在不同的计算机上运行,即:在服务器端程序,用来响应和提供固定的服务,在客户端程序,用来向服务器提出请求和要求某种服务, 1监听:

在此通信过程中服务器要有控件Win来监听,由于服务器需要与所有客户端通信,需要很多的控件,因此让次控件改为数组并将其属性Index设为0,此时该控件只有一个属性,以后可根据需要动态增减。服务器端要有一个控件用于监听客户端的连接请求,用Win0监听,所以先要设置其通信协为TCP在设置本地端口与服务器端建立连接,最后用Listen() 方法监听。Private SubForm_Load() ConDB自定义函数ConDB用于存储用户信息的数据库。 2请求与服务器端程序建立连接

在客户端程序的的登录窗体上加一个控件,然后设置通信协议,要连接的服务器IP地址,远程端口号要与服务器端监听所设置的本地端口一致,总后通过Connect()方法请求与服务器端程序建立连接。随后调用Accept()方法UserID AsString 对应用户ID IPAddrAsString 对应客户机IP地址, bLogin AsString Boolen 对应的用户是否登录 3 接收数据

客户断登录时要在服务器端的数据库中验证,如果是合法用户,则发送“合法用户”标记,然后将用户ID和用户器的ID等信息之于一个在线用户信息的结构数组中备用,然后通过自定义函数在数据库中获取该用户的所有好友ID及好友人数,并根据在线好友用户信息数组逐一判断各个好友是否在线,如果在线,则将在线好友的ID IP 地址发送给刚登录的客户,同时也将刚登录客户的ID IP地址发送给在线好友,以便他们相互之间的通信,如不成功,则发送“不是合法用户”数据标记。 4客户端接收数据

客户端接收到数据后,对每条数据进行分析,如不合法,则显示你不是合法用户如合法,则隐藏登录窗体,显示聊天窗体;如果是在线好友信息,则提取在线好友信息的IDIP址,然后通过自定义函数将该在线好友信息保存,并与该在线好友建立连接。 5客户端显示在线好友

在线好友接受连接请求后,则与该在线好友的ID显示在列表框FriendID中,聊天完全在客户端程序间进行

聊天

1 发送:聊天者在发送聊天之前要在列表框ListFriendID中选择欲与之通话的好友ID 2 离线:当一个用户离线时,作为聊天程序的服务器程序以及其他在线好友的聊天程序上与之通信的都会收Close()信息此时要做一些处理:

1 服务器程序:清除该在线用户的信息,卸载与之通信的控件

2 客户端程序:卸载与之通信的控件,从FriendList列表框中清除该在线好友的ID,

清除该好友的的信息.







本文来源:https://www.wddqw.com/doc/2ca7ed0aba1aa8114431d97c.html