国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

如何用VisualBasic編寫小型的網(wǎng)絡(luò)系統(tǒng)

2019-11-18 17:29:59
字體:
供稿:網(wǎng)友
VisualBasic以下簡稱(VB)十一個功能強(qiáng)大的編程語言。特別是4.0以后,支持了OLEAutomation技術(shù),給編程帶來了更大的方便。前些時,我試著編寫一個支持網(wǎng)絡(luò)的數(shù)據(jù)庫。但是由于沒有聯(lián)網(wǎng),所以沒法測試。于是,我想到了OLEAutomation,用它就可以在一臺機(jī)器上測試網(wǎng)絡(luò)功能。經(jīng)過改動,還可以用它通過Modem來進(jìn)行聯(lián)機(jī)。下面,我介紹一下如何用VisualBasic編寫小型的網(wǎng)絡(luò)系統(tǒng)。

----首先,建立一個支持網(wǎng)絡(luò)OLEAutomation

----啟動VB。在窗體Form1中建立一個列表框List1,在它上面建一個Frame1,設(shè)置它的Caption屬性為空。在它中間建立一個Label1,同樣,設(shè)置它的Caption也為空。最后,在List1上建立一個Caption為UserList的Label2。最后,把一個定時器Timer1安上,把它的Interval設(shè)為3000,Enabled設(shè)為False就行了。至此,NetWorkConnection的窗體部分就完成了。

----隨后,在VB的Tools菜單中選Options,按照填好各項內(nèi)容。

----接下來,在Insert菜單中選取Module建立一個新的模塊Module1。在(General)中輸入填寫進(jìn)下列代碼。

(UserInfo數(shù)據(jù)類型)
TypeUserInfo
UsernameAsString
AliasAsInteger
EndType
(最大的用戶數(shù))
PublicConstMaxUser=10
(定義消息)
PublicConstMsg_User_LogOn=1
PublicConstMsg_User_LogOff=2
(設(shè)定數(shù)據(jù)類型)
PublicUsers(MaxUser)AsUserInfo
PublicInbox(MaxUser)AsString
PublicUserSystemInboxAsInteger
PublicOnline(MaxUser)AsBoolean

Submain()
Form1.Show
EndSub

----UserInfo數(shù)據(jù)類型記錄了已經(jīng)登錄的用戶的用戶名和別名。在顯示和通訊時只使用別名。用戶名只作為判斷用戶是否有效時用。出于安全考慮,以上數(shù)據(jù)用戶不能隨意訪問,必須通過下面的子程序來訪問。

----在Insert菜單中選取ClassModule建立一個新的類Class1。更名為Common,并設(shè)置它的各個屬性。

----填寫進(jìn)下列代碼。

----(提供獲取用戶ID值的功能,用戶可以通過此功能使用別名來返回ID值)

PublicFunctionGetUserID(AliasAsString)AsInteger
ForI=1ToMaxUser
IfUsers(I).Alias=AliasThenGetUserID=I
NextI
EndFunction

----(提供獲得系統(tǒng)信息的功能。用戶可以通過它了解用戶是否有改動)

PublicFunctionGetSystemMessage()AsInteger
GetSystemMessage=UserSystemInbox
EndFunction

----(提供獲得用戶信息的功能。用它來獲取所有在線用戶的別名,中間用"|"分開。)

PublicFunctionGetUserInfo()AsString
ForI=1ToMaxUser
IfUsers(I).Username<>""Then
temp=temp Users(I).Alias "|"
EndIf
NextI
GetUserInfo=temp
EndFunction

----(提供獲得用戶私有信息的功能。用來接受別的用
戶發(fā)送的信息。)

PublicFunctionGetUserMessage(IDAsInteger)AsString
IfID<=0OrID>MaxUserThen
ExitFunction
EndIf
GetUserMessage=Inbox(ID)
EndFunction

----(提供注銷功能。用來退出網(wǎng)絡(luò)。)

PublicFunctionLogOff(IDAsInteger)AsBoolean
IfID<=0OrID>MaxUserThen
LogOff=False
ExitFunction
EndIf
IfUsers(ID).Username<>""Then
Users(ID).Username=""
LogOff=True
Else
LogOff=False
EndIf
UserSystemInbox=Msg_User_LogOff
`--------------UpdateForm1------------
ForI=0ToForm1.List1.ListCount-1
IfForm1.List1.List(I)=Users(ID).AliasThen
`查找List1中的用戶別名并刪除
Form1.List1.RemoveItemI
ExitFor
EndIf
NextI
IfForm1.List1.ListCount=0Then`如果沒有用戶登錄
Form1.Label1.Caption="DisConnected"
Form1.timer1.Enabled=False
EndIf
EndFunction

----(提供登錄功能來上網(wǎng))

PublicFunctionLogOn(UsernameAsString,
AliasAsString)AsInteger
ForI=1ToMaxUser
IfUsers(I).Username=""Then
Users(I).Username=Username
Users(I).Alias=Alias
LogOn=I
UserSystemInbox=Msg_User_LogOn`發(fā)送"用戶登錄"信息
`--------------UpdateForm1------------
Form1.List1.AddItemAlias`有用戶上網(wǎng)
Form1.Label1.Caption="Connected"
Form1.timer1.Enabled=True
ExitFunction
EndIf
NextI
LogOn=0
EndFunction

----(提供刷新用戶是否在線標(biāo)志的功能。使系統(tǒng)能夠判斷你是否在線上,如果在6秒內(nèi)沒有調(diào)用此功能,系統(tǒng)將會把您自動刪除。)

PublicSubRefresh(IDAsInteger)
IfID<=0OrID>MaxUserThenExitSub
Online(ID)=True
EndSub

----(提供發(fā)送用戶私有信息的功能。用來和其它用戶傳遞信息。)

PublicFunctionSendUserMessage(MessageAs
String,ToIDAsInteger)AsBoolean
IfToID<=0OrToID>MaxUserThen
SendUserMessage=False
ExitFunction
EndIf
Inbox(ToID)=Message
SendUserMessage=True
EndFunction

----在Form1的Code中輸入剩下的代碼。

(初始化Form1)
Namef$=Mid$(cd$,lastst,I-lastst)
Combo1.AddItemNamef$`分離用戶別名并加入Combo1
lastst=I 1
EndIf
NextI

EndSub

PrivateSubForm_Load()
Timer1.Enabled=False
Timer1.Interval=300
EndSub

PrivateSubTimer1_Timer()
Connected.Refresh(ID)`刷新用戶標(biāo)志
x=Connected.GetSystemMessage()`接收系統(tǒng)信息
y=Connected.GetUserMessage(ID)`接收用戶信息
Ify<>""Andy<>Label6.CaptionThenLabel6.Caption=y
Ifx<>Val(Label4.Caption)Then`刷新Combo1
Label4.Caption=x
Command4_Click
EndIf
EndSub

----開始運(yùn)行。輸入你的Username和Alias,單擊LogOn,查看一下先前的VB范例,看看你的名字是否在內(nèi)。如果是,證明你的"集線器"成功了。這時,不管已登錄的用戶處于什么原因沒有用LogOff就中斷聯(lián)系,系統(tǒng)都會在6秒后自動刪除這些用戶。確保其它用戶不受影響。

----這個程序經(jīng)過改動,可以給它支持Modem的功能。而用戶部分的程序可以原封不動。編譯時在Options中選中RemoteSupportFile并利用附帶的安裝程序安裝到網(wǎng)絡(luò)服務(wù)器上就可以真正實(shí)現(xiàn)"聯(lián)網(wǎng)"了。->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 麻江县| 江西省| 新兴县| 丹凤县| 新津县| 南澳县| 杭锦旗| 方正县| 历史| 乐都县| 偏关县| 宜丰县| 翁源县| 昌邑市| 儋州市| 达州市| 靖江市| 新宁县| 南丹县| 汉阴县| 黑水县| 曲靖市| 镇雄县| 石阡县| 远安县| 安达市| 隆子县| 金山区| 梧州市| 苗栗县| 织金县| 年辖:市辖区| 康乐县| 宜春市| 灵璧县| 寿阳县| 石棉县| 东港市| 塔城市| 婺源县| 涟水县|