版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 計(jì)算機(jī)系統(tǒng)設(shè)計(jì)</b></p><p> 利用VB6 Winsock空間創(chuàng)建TCP—IP客戶機(jī)—服務(wù)器程序</p><p> 功能描述:利用Winsock編寫基于TCP/IP的客戶機(jī)----服務(wù)器程序,實(shí)現(xiàn)網(wǎng)絡(luò)的通信。</p><p> 服務(wù)器程序?qū)崿F(xiàn)的過程:</p><p> 服務(wù)
2、器程序必須設(shè)置好LOCAPORT屬性,作為偵聽端口,該值為一個(gè)整數(shù)。</p><p> 使用LISTEN方法進(jìn)入偵聽狀態(tài),等待客戶機(jī)程序的連接請(qǐng)求。</p><p> 客戶機(jī)程序發(fā)出連接請(qǐng)求,使服務(wù)器程序產(chǎn)生CONNECTIONREQUEST事件,該事件得到一個(gè)參數(shù)REQUESTID。</p><p> 服務(wù)器程序用ACCEPT方法接受客戶機(jī)程序的REQUES
3、TID請(qǐng)求。這樣服務(wù)器程序就可以用SENDDATA方法發(fā)送數(shù)據(jù)了。ACCEPT方法必須用上一步得到的REQUESTID作為其參數(shù)。</p><p> 當(dāng)服務(wù)器程序接收到數(shù)據(jù)時(shí),產(chǎn)生DATAARRIVAL事件,參數(shù)BYTESTOTAL包含接收到是數(shù)據(jù)字節(jié)數(shù)。在該事件中,可以用GETDATA事件方法接收數(shù)據(jù)。</p><p> 如果接收到CLOSE事件,則用CLOSE方法關(guān)閉TCP/IP連
4、接。</p><p> 客戶機(jī)程序的實(shí)現(xiàn)過程:</p><p> 客戶機(jī)程序設(shè)置REMOTEHOST屬性,以便指定運(yùn)行服務(wù)器程序的主機(jī)名,該字符串可在“控制面版|網(wǎng)絡(luò)|標(biāo)識(shí)|計(jì)算機(jī)名”中查到。</p><p> 設(shè)置REMOTEPORT屬性,以便指定服務(wù)器程序的偵聽端口。</p><p> 使用CONNECT方法,向服務(wù)器提出連接請(qǐng)求
5、。</p><p> 服務(wù)器接受客戶機(jī)程序的請(qǐng)求,客戶機(jī)程序產(chǎn)生CONNECT事件,就可以用SENDDATA方法發(fā)送數(shù)據(jù)了。</p><p> 當(dāng)客戶機(jī)程序接收到數(shù)據(jù)時(shí),產(chǎn)生DATAARRIVAL事件,參數(shù)BYTESTOAL包含接收到的數(shù)據(jù)字節(jié)數(shù)。在該事件中,可以用GETDATA方法接收數(shù)據(jù)。</p><p> 如果接收到CLOSE事件,則用CLOSE方法關(guān)閉
6、連接。</p><p><b> 服務(wù)端程序及圖解:</b></p><p> SERVER端界面圖:</p><p> * Command2---聊天記錄 Command3---發(fā)送 Command4---退出</p><p><b> 程序:</b></p>&
7、lt;p> Public IsLong As Boolean</p><p> --------------------------------------------------------------</p><p> Private Sub Command2_Click()</p><p> If IsLong = False Then</
8、p><p> Form1.Height = 6990</p><p> IsLong = True</p><p><b> Else</b></p><p> Form1.Height = 2900</p><p> IsLong = False</p><p>&
9、lt;b> End If</b></p><p><b> End Sub</b></p><p> ---------------------------------------------------------------</p><p> Private Sub Command3_Click()</p&g
10、t;<p> Dim sendtext As String</p><p> sendtext = Text2.Text</p><p> Winsocks.SendData sendtext</p><p> Dim str As String</p><p> str = (Now) & " &q
11、uot; & Winsocks.LocalHostName & ":" & (vbNewLine)</p><p> Text3.Text = Text3.Text + str + sendtext + (vbNewLine)</p><p><b> End Sub</b></p><p>
12、---------------------------------------------------------------</p><p> Private Sub Command4_Click()</p><p> If MsgBox("您真的要退出嗎???", vbYesNo, "警告!") = vbYes Then</p>
13、<p><b> End</b></p><p><b> End If</b></p><p><b> End Sub</b></p><p> ---------------------------------------------------------------<
14、/p><p> Private Sub Form_Load()</p><p> Winsocks.LocalPort = 1000</p><p> Winsocks.Listen</p><p> Text2.Visible = False</p><p> Text3.Visible = False<
15、/p><p> Form1.Height = 3000</p><p><b> End Sub</b></p><p> ---------------------------------------------------------------</p><p> Private Sub Text2_Change
16、()</p><p><b> End Sub</b></p><p> ---------------------------------------------------------------</p><p> Private Sub Text3_Change()</p><p><b> En
17、d Sub</b></p><p> ---------------------------------------------------------------</p><p> Private Sub Winsocks_ConnectionRequest(ByVal requestID As Long)</p><p> If Winsock
18、s.State <> sckClosed Then Winsocks.Close</p><p> Winsocks.Accept (requestID)</p><p> Text2.Visible = True</p><p> Text3.Visible = True</p><p><b> End Su
19、b</b></p><p> ---------------------------------------------------------------</p><p> Private Sub Winsocks_DataArrival(ByVal bytesTotal As Long)</p><p> Dim gettext As Stri
20、ng</p><p> Winsocks.GetData gettext</p><p> Dim str As String</p><p> str = (Now) & " " & Winsocks.RemoteHost & ":" & (vbNewLine)</p>&
21、lt;p> Text3.Text = Text3.Text + str + gettext + (vbNewLine)</p><p><b> End Sub</b></p><p><b> 退出程序端界面圖:</b></p><p> * Command1---連接 Command2---聊天記錄
22、 Command3---發(fā)送 Command4---退出</p><p><b> 程序:</b></p><p> Public IsLong As Boolean</p><p> ---------------------------------------------------------</p><p
23、> Private Sub Command1_Click()</p><p> WinsockC.Connect</p><p><b> End Sub</b></p><p> ---------------------------------------------------------</p><p&
24、gt; Private Sub Command2_Click()</p><p> If IsLong = False Then</p><p> Form1.Height = 7590</p><p> IsLong = True</p><p><b> Else</b></p><p&
25、gt; Form1.Height = 3550</p><p> IsLong = False</p><p><b> End If</b></p><p><b> End Sub</b></p><p> ---------------------------------------
26、------------------</p><p> Private Sub Command3_Click()</p><p> Dim sendtext As String</p><p> sendtext = Text2.Text</p><p> WinsockC.SendData sendtext</p>&
27、lt;p> Dim str As String</p><p> str = (Now) & " " & WinsockC.LocalHostName & ":" & (vbNewLine)</p><p> Text3.Text = Text3.Text + str + sendtext + (vbNew
28、Line)</p><p><b> End Sub</b></p><p> ---------------------------------------------------------</p><p> Private Sub Command4_Click()</p><p> If MsgBox(&q
29、uot;您真的要退出嗎!?", vbYesNo, "警告!") = vbYes Then</p><p><b> End</b></p><p><b> End If</b></p><p><b> End Sub</b></p><p&g
30、t; ---------------------------------------------------------</p><p> Private Sub Form_Load()</p><p> WinsockC.RemotePort = 1000</p><p> Text3.Visible = False</p><p>
31、; Text2.Visible = False</p><p> IsLong = False</p><p> Form1.Height = 3550</p><p><b> End Sub</b></p><p> ---------------------------------------------
32、------------</p><p> Private Sub Text1_Change()</p><p> WinsockC.RemoteHost = Text1.Text</p><p><b> End Sub</b></p><p> --------------------------------
33、-------------------------</p><p> Private Sub WinsockC_Connect()</p><p> MsgBox ("和服務(wù)器已經(jīng)連接成功!")</p><p> Text3.Visible = True</p><p> Text2.Visible = True&
34、lt;/p><p><b> End Sub</b></p><p> ---------------------------------------------------------</p><p> Private Sub WinsockC_DataArrival(ByVal bytesTotal As Long)</p>
35、<p> Dim gettext As String</p><p> WinsockC.GetData gettext</p><p> Dim str As String</p><p> str = (Now) & " " & WinsockC.RemoteHost & ":"
36、 & (vbNewLine)</p><p> Text3.Text = Text3.Text + str + gettext + (vbNewLine)</p><p><b> End Sub</b></p><p> ------------------------------------------------------
37、---</p><p> Private Sub WinsockC_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Bool
38、ean)</p><p> MsgBox ("服務(wù)器沒有響應(yīng)!被迫退出程序")</p><p><b> End</b></p><p><b> End Sub</b></p><p><b> 連接服務(wù)器:</b></p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- tcp_ip課程設(shè)計(jì)---基于套接字的客戶機(jī)服務(wù)器程序設(shè)計(jì)
- 計(jì)算機(jī)系統(tǒng)綜合課程設(shè)計(jì)
- 發(fā)現(xiàn)服務(wù)器已開啟的tcp服務(wù)計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 課程設(shè)計(jì)--微型計(jì)算機(jī)系統(tǒng)設(shè)計(jì)
- 計(jì)算機(jī)系統(tǒng)綜合課程設(shè)計(jì)doc
- wincc客戶機(jī)服務(wù)器結(jié)構(gòu)
- 嵌入式課程設(shè)計(jì)--linux tcp服務(wù)器_客戶端通信程序
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)--dns服務(wù)器搭建
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)--dns服務(wù)器配置
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)---簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)---簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)--簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)系統(tǒng)算法設(shè)計(jì)與分析報(bào)告課程設(shè)計(jì)
- 課程設(shè)計(jì)-基于微程序控制器的簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算機(jī)系統(tǒng)綜合課程設(shè)計(jì)2ppt
- 計(jì)算機(jī)系統(tǒng)綜合課程設(shè)計(jì)報(bào)告模版doc
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)--簡(jiǎn)單ftp服務(wù)器實(shí)現(xiàn)
- 計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)課程設(shè)計(jì)---簡(jiǎn)單16位cpu設(shè)計(jì)
- 基于客戶-服務(wù)器模型的計(jì)算機(jī)協(xié)同設(shè)計(jì).pdf
- 發(fā)現(xiàn)服務(wù)器已開啟的tcp服務(wù)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論