




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上1.服務器端往服務器窗體(命名為frmServer)添加三個控件,分別為LIST1(存放在線好友名單),text1(留言內(nèi)容)和text2(聊天記錄),程序如下:Option ExplicitConst Busy As Boolean = FalseConst Free As Boolean = TrueDim ConnectState() As BooleanDim SIndexDim Usrs(0 To 32) '在線人名Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Intege
2、r) EndEnd SubPrivate Sub Form_Load() If App.PrevInstance = True Then MsgBox "程序已在運行", vbCritical End End If ReDim Preserve ConnectState(0) On Error Resume Next ConnectState(0) = Free Listener.LocalPort = 1001 '端口號 Listener.Listen '開始偵聽End SubPrivate Sub Listener_ConnectionRequest(B
3、yVal requestID As Long) Dim SockIndex As Integer Dim SockNum As Integer On Error Resume Next SockNum = UBound(ConnectState) If SockNum > 32 Then Exit Sub '查找空閑的SckServer SockIndex = FindFreeSocket '如果已有的sock都忙,而且sock數(shù)不超過32個,動態(tài)添加sock If SockIndex > SockNum Then Load SckServer(SockIndex)
4、 ConnectState(SockIndex) = Busy SckServer(SockIndex).Tag = SockIndex '接受請求 SckServer(SockIndex).Accept (requestID)End SubPrivate Sub SckServer_DataArrival(Index As Integer, ByVal bytesTotal As Long) Dim dx As String SIndex = Index SckServer(Index).GetData dx, vbString If Len(Text2.Text) >= 51
5、2 Then Text2.Text = "" If Right(dx, 2) = "|" Then List1.AddItem Replace(dx, "|", "") Usrs(SIndex) = Replace(dx, "|", "") Timer1.Enabled = True Text2.Text = Format(Now(), "YY-MM-DD hh:mm:ss") & " “" & Usrs(Index)
6、& "”上線。" & vbCrLf & Text2.Text Open App.Path & "record.txt" For Append As #1 Write #1, Format(Now(), "YY-MM-DD hh:mm:ss") & " “" & Usrs(Index) & "”上線。" Close #1 Else Text1.Text = Left(dx, InStr(dx, "|") & For
7、mat(Now(), "YY-MM-DD hh:mm:ss") & vbCrLf & Usrs(Index) & "說:" & Right(dx, Len(dx) - InStr(dx, "|") Text2.Text = Format(Now(), "YY-MM-DD hh:mm:ss") & " “" & Usrs(Index) & "”對“" & Replace(dx, "|", &qu
8、ot;”說:" & vbCrLf) & vbCrLf & Text2.Text Open App.Path & "record.txt" For Append As #1 Write #1, Format(Now(), "YY-MM-DD hh:mm:ss") & " “" & Usrs(Index) & "”對“" & Replace(dx, "|", "”說:" & vbCrLf) Clos
9、e #1 End IfEnd SubPrivate Sub SckServer_Close(Index As Integer) Dim i% On Error Resume Next If SckServer(Index).State <> sckClosed Then SckServer(Index).Close ConnectState(Index) = Free Text2.Text = Format(Now(), "YY-MM-DD hh:mm:ss") & " “" & Usrs(Index) & "
10、;”下線。" & vbCrLf & Text2.Text Open App.Path & "record.txt" For Append As #1 Write #1, Format(Now(), "YY-MM-DD hh:mm:ss") & " “" & Usrs(Index) & "”下線。" Close #1 For i = 0 To List1.ListCount If List1.List(i) = Usrs(Index) Then List1.R
11、emoveItem (i) Usrs(Index) = "" Timer1.Enabled = True Exit For End If NextEnd SubPublic Function FindFreeSocket() Dim SockCount, i As Integer SockCount = UBound(ConnectState) For i = 0 To SockCount If ConnectState(i) = Free Then FindFreeSocket = i Exit Function End If Next i ReDim Preserve
12、ConnectState(0 To SockCount + 1) FindFreeSocket = UBound(ConnectState)End FunctionPrivate Sub Text1_Change() Dim Ar, i On Error GoTo L1 Ar = Split(Text1.Text, "|") For i = 0 To UBound(Usrs) If Usrs(i) = Ar(0) And Ar(0) <> "" Then Exit For Next SckServer(i).SendData Text1.Te
13、xtL1:End SubPrivate Sub Timer1_Timer() Dim i%, j%, Str$ For j = 0 To List1.ListCount Str = Str & List1.List(j) & "|" Next On Error Resume Next For i = 0 To UBound(ConnectState) SckServer(i).SendData Str NextL1: Str = "" Timer1.Enabled = FalseEnd Sub2.客戶端客戶端工程里添加兩個窗體(Login
14、和frmClient),分別如圖所示,把登陸窗體存放用戶名的文本框命名為USRN。程序代碼如下(示范,沒什么實際意義):Private Sub Form_Load() If App.PrevInstance = True Then MsgBox "程序已在運行", vbCritical End End If Usrn.Text = UCase(Environ("UserName")End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) EndEnd Sub
15、Private Sub Command1_Click() Me.Hide frmClient.ShowEnd SubPrivate Sub Command2_Click() Usrn.Text = "" Text2.Text = ""End SubPrivate Sub Command3_Click() EndEnd Sub在對話窗體(frmClient)中添加三個對象,List1用于存放在線好友名單,單擊選中要交談的好友,Txtsend輸入要發(fā)送的信息,txtOutput顯示收到的信息。Connect按鈕用于重新連接服務器。程序如下:Const Com
16、puterName = "你的計算機名字或IP地址"Private Sub Form_Load() 'Winsock 控件的名字為SckClient。注意:要指定遠程主機,可以使用 ' IP 地址(例如:"121.111.1.1"),也可以使用計算機的“好聽的名字”。 SckClient.RemoteHost = ComputerName SckClient.RemotePort = 1001 SckClient.Connect cmdConnect.Enabled = SckClient.State = sckClosed Me.Cap
17、tion = Me.Caption & "-" & Login.Usrn.TextEnd SubPrivate Sub cmdConnect_Click() '調(diào)用Connect 方法,初始化連接。 If SckClient.State <> sckClosed Then SckClient.Close SckClient.Connect cmdConnect.Enabled = SckClient.State = sckClosedEnd SubPrivate Sub Form_QueryUnload(Cancel As Integer
18、, UnloadMode As Integer) EndEnd SubPrivate Sub Command1_Click()' MsgBox List1.Text On Error GoTo L1 If List1.Text = "" Then Exit Sub SckClient.SendData List1.Text & "|" & txtSend.Text txtOutput.Text = Format(Now(), "YY-MM-DD hh:mm:ss") & vbCrLf & &qu
19、ot;對" & List1.Text & "說:" & txtSend.Text & vbCrLf & vbCrLf & txtOutput.Text txtSend.Text = "" Exit SubL1: MsgBox "通信失敗" cmdConnect.Enabled = TrueEnd SubPrivate Sub List1_Click() If List1.Text <> Login.Usrn.Text Then Speakto.Caption = "對" & List1.Text & "說:" Else MsgBox "你選擇了自己。" End IfEnd SubPrivate Sub
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度終止雙方在線教育平臺合作協(xié)議
- 二零二五年度海底油氣管道水平定向鉆施工合作協(xié)議
- 二零二五年度全球市場傭金分成合作協(xié)議
- 2025年合作貨運從業(yè)資格證科目一考試答案
- 公司領導發(fā)言稿范文
- 銀行職員續(xù)訂勞動合同
- 2024年雙方離婚協(xié)議
- 申請采購辦公用品的通知
- 基于物聯(lián)網(wǎng)的智能家庭環(huán)境監(jiān)測系統(tǒng)操作指南
- 2025年1月福建省普通高中學業(yè)水平合格性考試地理試題仿真模擬卷02(解析版)
- DeepSeek人工智能語言模型探索AI世界科普課件
- 《青春期心理健康指導》課件
- 第18講 等腰三角形 課件中考數(shù)學復習
- 社會階層與教育選擇行為分析-深度研究
- 2025年內(nèi)蒙古呼和浩特市屬國企業(yè)紀檢監(jiān)察機構招聘工作人員80人高頻重點模擬試卷提升(共500題附帶答案詳解)
- 社會工作行政(第三版)課件匯 時立榮 第6-11章 項目管理- 社會工作行政的挑戰(zhàn)、變革與數(shù)字化發(fā)展
- 全過程工程咨詢文件管理標準
- 模特攝影及肖像使用合同協(xié)議范本
- 2025年湘潭醫(yī)衛(wèi)職業(yè)技術學院高職單招職業(yè)適應性測試近5年??及鎱⒖碱}庫含答案解析
- 《預制高強混凝土風電塔筒生產(chǎn)技術規(guī)程》文本附編制說明
- 2025福建福州地鐵集團限公司運營分公司校園招聘高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論