如何用Visual Basic编写小型的网络系统
2008-02-23 06:55:37来源:互联网 阅读 ()
---- 首 先, 建 立 一 个 支 持 网 络OLE Automation
---- 启 动VB。 在 窗 体Form1 中 建 立 一 个 列 表 框List 1, 在 它 上 面 建 一 个Frame1, 设 置 它 的Caption 属 性 为 空。 在 它 中 间 建 立 一 个Label1, 同 样, 设 置 它 的Caption 也 为 空。 最 后, 在List1 上 建 立 一 个Caption 为UserList 的Label2。 最 后, 把 一 个 定 时 器Timer1 安 上, 把 它 的Interval 设 为3000,Enabled 设 为False 就 行 了。 至 此,NetWorkConnection 的 窗 体 部 分 就 完 成 了。
---- 随 后, 在VB 的Tools 菜 单 中 选Options, 按 照 填 好 各 项 内 容。
---- 接 下 来, 在Insert 菜 单 中 选 取Module 建 立 一 个 新 的 模 块Module1。 在(General) 中 输 入 填 写 进 下 列 代 码。
(UserInfo数据类型)
Type UserInfo
Username As String
Alias As Integer
End Type
(最大的用户数)
Public Const MaxUser = 10
(定义消息)
Public Const Msg_User_LogOn = 1
Public Const Msg_User_LogOff = 2
(设定数据类型)
Public Users (MaxUser) As UserInfo
Public Inbox (MaxUser) As String
Public UserSystemInbox As Integer
Public Online(MaxUser) As Boolean
Sub main()
Form1.Show
End Sub
---- UserInfo 数 据 类 型 记 录 了 已 经 登 录 的 用 户 的 用 户 名 和 别 名。 在 显 示 和 通 讯 时 只 使 用 别 名。 用 户 名 只 作 为 判 断 用 户 是 否 有 效 时 用。 出 于 安 全 考 虑, 以 上 数 据 用 户 不 能 随 意 访 问, 必 须 通 过 下 面 的 子 程 序 来 访 问。
---- 在Insert 菜 单 中 选 取Class Module 建 立 一 个 新 的 类Class1。 更 名 为Common, 并 设 置 它 的 各 个 属 性。
---- 填 写 进 下 列 代 码。
---- ( 提 供 获 取 用 户ID 值 的 功 能, 用 户 可 以 通 过 此 功 能 使 用 别 名 来 返 回ID 值)
Public Function GetUserID(Alias As String) As Integer
For I = 1 To MaxUser
If Users(I).Alias = Alias Then GetUserID = I
Next I
End Function
---- ( 提 供 获 得 系 统 信 息 的 功 能。 用 户 可 以 通 过 它 了 解 用 户 是 否 有 改 动)
Public Function GetSystemMessage() As Integer
GetSystemMessage = UserSystemInbox
End Function
---- ( 提 供 获 得 用 户 信 息 的 功 能。 用 它 来 获 取 所 有 在 线 用 户 的 别 名, 中 间 用"|" 分 开。)
Public Function GetUserInfo() As String
For I = 1 To MaxUser
If Users(I).Username < > "" Then
temp = temp Users(I).Alias "|"
End If
Next I
GetUserInfo = temp
End Function
---- ( 提 供 获 得 用 户 私 有 信 息 的 功 能。 用 来 接 受 别 的 用
户 发 送 的 信 息。)
Public Function GetUserMessage(ID As Integer) As String
If ID < = 0 Or ID > MaxUser Then
Exit Function
End If
GetUserMessage = Inbox(ID)
End Function
---- ( 提 供 注 销 功 能。 用 来 退 出 网 络。)
Public Function LogOff(ID As Integer) As Boolean
If ID < = 0 Or ID > MaxUser Then
LogOff = False
Exit Function
End If
If Users(ID).Username < > "" Then
Users(ID).Username = ""
LogOff = True
Else
LogOff = False
End If
UserSystemInbox = Msg_User_LogOff
`-------------- Update Form1 ------------
For I = 0 To Form1.List1.ListCount - 1
If Form1.List1.List(I) = Users(ID).Alias Then
`查找List1中的用户别名并删除
Form1.List1.RemoveItem I
Exit For
End If
Next I
If Form1.List1.ListCount = 0 Then `如果没有用户登录
Form1.Label1.Caption = "DisConnected"
Form1.timer1.Enabled = False
End If
End Function
---- ( 提 供 登 录 功 能 来 上 网)
Public Function LogOn(Username As String,
Alias As String) As Integer
For I = 1 To MaxUser
If Users(I).Username = "" Then
Users(I).Username = Username
Users(I).Alias = Alias
LogOn = I
UserSystemInbox = Msg_User_LogOn `发送"用户登录"信息
`-------------- Update Form1 ------------
Form1.List1.AddItem Alias `有用户上网
Form1.Label1.Caption = "Connected"
Form1.timer1.Enabled = True
Exit Function
End If
Next I
LogOn = 0
End Function
---- ( 提 供 刷 新 用 户 是 否 在 线 标 志 的 功 能。 使 系 统 能 够 判 断 你 是 否 在 线 上, 如 果 在6 秒 内 没 有 调 用 此 功 能, 系 统 将 会 把 您 自 动 删 除。)
Public Sub Refresh(ID As Integer)
If ID < = 0 Or ID > MaxUser Then Exit Sub
Online(ID) = True
End Sub
---- ( 提 供 发 送 用 户 私 有 信 息 的 功 能。 用 来 和 其 它 用 户 传 递 信 息。)
Public Function SendUserMessage(Message As
String, ToID As Integer) As Boolean
If ToID < = 0 Or ToID > MaxUser Then
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:人民币金额转换例程
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash