亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? vb用winsock編寫的簡(jiǎn)單聊天程序.txt

?? 這是一個(gè)簡(jiǎn)單的聊天程序(VB6.0實(shí)現(xiàn))
?? TXT
字號(hào):
這是一個(gè)簡(jiǎn)單的聊天程序(VB6.0實(shí)現(xiàn)),它可以實(shí)現(xiàn)在局域網(wǎng)中兩臺(tái)主機(jī)間的在線聊天,程序很簡(jiǎn)單,只有短短的幾十行,但“麻雀雖小,五臟俱全”,它已經(jīng)有了聊天程序的大體框架。我們?cè)谒幕A(chǔ)上稍加改進(jìn),就能做出不錯(cuò)的聊天小軟件呢。

  為了學(xué)習(xí)方便,提供的源碼已經(jīng)作了詳細(xì)的中文注釋,看看源碼框中的代碼:


Option Explicit
Private IgnoreText As Boolean

'----------------------各控件說(shuō)明----------------------------
'--名稱-------------類型---------------作用------------------
'frmMain            Form               CHAT主窗體
'Winsock1           Winsock            連接控件
'Label1             Label              CONNECT WITH IP標(biāo)簽
'Label2             Label              LOCAL PORT標(biāo)簽
'Label3             Label              REMOTE PORT標(biāo)簽
'txtRemoteIP        TextBox            遠(yuǎn)程IP地址輸入框
'txtLocalPort       TextBox            本地PORT輸入框
'txtRemotePort      TextBox            遠(yuǎn)程PORT輸入框
'cmdConnect         CommandButton      連接CONNECT按鈕
'Label4             Label              Type your text and hit Enter to send it.標(biāo)簽
'Frame1(remoteip)   Frame              REMOTE IP 框架
'Frame2(host ip)    Frame              HOST IP 框架
'Text1              TextBox            顯示對(duì)方(遠(yuǎn)程主機(jī))發(fā)送的CHAT內(nèi)容
'Text2              TextBox            輸入己方(本地主機(jī))要發(fā)送的CHAT內(nèi)容,按ENTER鍵發(fā)送
'cmdClear           CommandButton      清空輸入框(TEXT2)和顯示框(TEXT1)中的內(nèi)容
'StatusBar1         StatusBar          狀態(tài)欄
'-----------------------------------------------------------

'當(dāng)CLEAR按鈕按下時(shí),清空TEXT1和TEXT2中的內(nèi)容
Private Sub cmdClear_Click()
Text1 = ""
With Text2
   '清空輸入框
   .Text = " "
   '并把焦點(diǎn)置于TEXT2
   .SetFocus
End With
End Sub

'當(dāng)CONNECT按鈕按下時(shí),進(jìn)行以下操作
Private Sub cmdConnect_Click()
On Error GoTo ErrHandler

With Winsock1
   '設(shè)置 RemoteHost 屬性
   .RemoteHost = Trim(txtRemoteIP)
   '設(shè)置 RemotePort 屬性
   'RemotePort 屬性的值應(yīng)該等于 遠(yuǎn)程主機(jī)上的 LocalHost 屬性的值
   .RemotePort = Trim(txtRemotePort)
   'LocalPort 屬性的值是不能改變的,必須檢查它是否已經(jīng)被設(shè)置
   '如果 LocalPort 屬性為空(沒(méi)有被設(shè)置),將其設(shè)為在LocalPort輸入框中輸入的數(shù)值
   If .LocalPort = Empty Then
      .LocalPort = Trim(txtLocalPort)
      Frame2.Caption = .LocalIP
      .Bind .LocalPort
      '待查
   End If
End With

'為了保證使用者不能改變LocalPort的值,將txtLocalPort輸入框鎖定
txtLocalPort.Locked = True
'在狀態(tài)欄中顯示“正在連接”的狀態(tài)
StatusBar1.Panels(1).Text = "  Connected to " & Winsock1.RemoteHost & "  "
'如果連接正常,做以下設(shè)置
Frame1.Enabled = True
Frame2.Enabled = True
Label4.Visible = True
Text2.SetFocus
Exit Sub
'如果在連接過(guò)程中出現(xiàn)錯(cuò)誤,則轉(zhuǎn)向ErrHandler:,并顯示錯(cuò)誤提示
ErrHandler:
MsgBox "Winsock failed to establish connection with remote server", vbCritical
End Sub

'當(dāng)按下“F1”鍵時(shí)顯示幫助信息
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyF1 Then
ChDir App.Path
'調(diào)用外部程序notepad.exe來(lái)打開(kāi)幫助文本文件
Shell "notepad.exe readme.txt", vbNormalFocus
End If

End Sub

'當(dāng)窗體加載時(shí)顯示提示信息并在 txtRemoteIP 框中顯示本地主機(jī)的IP
Private Sub Form_Load()
Show
MsgBox "Winsock UDT Chat" & vbCrLf & "by Theo Kandiliotis (ionikh@hol.gr)" & vbCrLf & vbCrLf & "F1 for help.", vbInformation
txtRemoteIP = Winsock1.LocalIP
End Sub

'接收TEXT2輸入框的按鍵,并做響應(yīng)
Private Sub Text2_KeyPress(KeyAscii As Integer)

'定義變量 Last_Line_Feed 來(lái)記錄最后輸入行的位置
Static Last_Line_Feed As Long
'定義 New_Line 字符串記錄新鍵入的一行文本的內(nèi)容
Dim New_Line As String
'如果使用者按下CLEAR按鈕對(duì)輸入框內(nèi)容清空,這時(shí)TEXT2為空,則重設(shè)最后輸入行的位置為0
If Trim(Text2) = vbNullString Then Last_Line_Feed = 0
'當(dāng)使用者按下ENTER鍵時(shí)
If KeyAscii = 13 Then
   '取得最后輸入行的內(nèi)容并賦值給 New_Line 字符串
   New_Line = Mid(Text2, Last_Line_Feed + 1)
   '重設(shè)最后輸入行的位置
   Last_Line_Feed = Text2.SelStart
   '通過(guò) WINSOCK 發(fā)送新輸入的一行文本的內(nèi)容
   Winsock1.SendData New_Line
   '在狀態(tài)欄顯示發(fā)送信息
   StatusBar1.Panels(2).Text = "  Sent " & (LenB(New_Line) / 2) & " bytes  "
End If

End Sub

'當(dāng) WINSOCK 接收到新的數(shù)據(jù)(信息)時(shí),進(jìn)行以下響應(yīng)
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
'定義 New_Text 字符串來(lái)記錄新接收的信息
Dim New_Text As String
'接收信息并賦值給 New_Text
Winsock1.GetData New_Text
'在TEXT1顯示框中顯示新接收到的信息
Text1.SelText = New_Text
Frame1.Caption = Winsock1.RemoteHostIP
'在狀態(tài)欄中顯示接收信息
StatusBar1.Panels(2).Text = "  Recieved " & bytesTotal & " bytes  "
End Sub

'---------------------------------------------------------------------------
'這就是一個(gè)最簡(jiǎn)單的CHAT程序,你可以在它的基礎(chǔ)上加以改進(jìn),做出更實(shí)用的CHAT小軟件。
'--------------------------------------------------------------------------- 


主打控件WINSOCK解析:

  作為這個(gè)CHAT程序的主打控件WINSOCK,我們來(lái)看看它的一些常用屬性、事件和方法。利用WinSock控件可以與遠(yuǎn)程計(jì)算機(jī)建立連接,并通過(guò)用戶數(shù)據(jù)文報(bào)協(xié)議 (UDP)或者傳輸控制協(xié)議 (TCP)進(jìn)行數(shù)據(jù)交換。這兩種協(xié)議都可以用來(lái)創(chuàng)建客戶與服務(wù)器應(yīng)用程序。與 Timer 控件類似,WinSock 控件在運(yùn)行時(shí)是不可見(jiàn)的。 

  它的主要用途有:

  1、創(chuàng)建收集用戶信息的客戶端應(yīng)用程序,并將收集的信息發(fā)送到某中央服務(wù)器。
  2、創(chuàng)建一個(gè)服務(wù)器應(yīng)用程序,作為多個(gè)用戶的數(shù)據(jù)的匯入點(diǎn)。
  3、創(chuàng)建“聊天”應(yīng)用程序。

  WINSOCK的主要屬性有:

  ●PROTOCOL(控制協(xié)議)屬性,在這個(gè)例子中,我們將PROTOCOL屬性設(shè)置為sckUDPProtocol。這個(gè)協(xié)議一般用于簡(jiǎn)單數(shù)據(jù)交換的情況,而如果我們要編寫INTERNET應(yīng)用程序,多采用TCP協(xié)議。 
  ●屬性RemoteHost是遠(yuǎn)程主機(jī)的地址,LocalPort、RemotePort分別本地主機(jī)的端口和遠(yuǎn)程主機(jī)端口,對(duì)客戶來(lái)說(shuō),該屬性指定發(fā)送數(shù)據(jù)的本地端口,而對(duì)于服務(wù)器來(lái)說(shuō),這是用于偵聽(tīng)的本地端口,我們?cè)谠O(shè)置這兩個(gè)屬性時(shí)必須保證兩臺(tái)主機(jī)的端口值符合下面規(guī)則,即主機(jī)1的LocalPort等于主機(jī)2的RemotePort值,同樣主機(jī)1的RemotePort等于主機(jī)2的LocalPort值,這樣才能保證兩機(jī)通訊的正常進(jìn)行。 
  ●LocalIP屬性用于返回本地機(jī)器的 IP 地址,格式是 IP 地址加點(diǎn)的字符串 (xxx.xxx.xxx.xxx)。 

  在本例中我們用到了以下幾個(gè)WINSOCK的方法: 
  ●在創(chuàng)建 UDP 應(yīng)用程序時(shí)調(diào)用了 Bind 方法,這是必須的。Bind 方法的作用是為控件“保留”一個(gè)本地端口。例如,如果將控件綁定到1001 號(hào)端口,那么其它應(yīng)用程序?qū)⒉荒苁褂迷摱丝谶M(jìn)行“監(jiān)聽(tīng)”。該方法阻止其它應(yīng)用程序使用同樣的端口。
  ●SendData 方法用于發(fā)送一條數(shù)據(jù)給另一臺(tái)主機(jī),使用這個(gè)方法的語(yǔ)法是:        WinSock.SendData [要發(fā)送的數(shù)據(jù)]
  ●GetData 方法。當(dāng)DataArrival事件出現(xiàn)時(shí),代碼調(diào)用 GetData 方法獲取數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)在字符串變量中。使用語(yǔ)法是:WinSock.GetData [接收數(shù)據(jù)的變量] 

  ●DataArrival事件:在本例中我們使用了DataArrival事件,DataArrival事件在當(dāng)新數(shù)據(jù)到達(dá)時(shí)出現(xiàn)使用的語(yǔ)法為:object_DataArrival (bytesTotal As Long)        DataArrival 事件的語(yǔ)法包含下面部分: object 對(duì)象表達(dá)式,其值是“應(yīng)用于”列表中的對(duì)象。 bytesTotal Long型 ,可獲取的數(shù)據(jù)總數(shù)量。 
  需要說(shuō)明的是:如果沒(méi)有獲取一個(gè) GetData 調(diào)用中的全部數(shù)據(jù),則事件不會(huì)出現(xiàn)。只有存在新數(shù)據(jù)時(shí)才激活事件。可隨時(shí)用 BytesReceived屬性檢查可用的數(shù)據(jù)量。 

  這就是一個(gè)最簡(jiǎn)單的CHAT程序,你可以在它的基礎(chǔ)上加以改進(jìn),做出更實(shí)用的CHAT小軟件。

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美乱妇15p| 一区二区三区四区高清精品免费观看 | 久久久亚洲高清| 91精品在线观看入口| 欧美在线|欧美| 91麻豆国产精品久久| hitomi一区二区三区精品| 成人国产精品免费观看视频| 成人激情午夜影院| 97久久超碰国产精品| 亚洲品质自拍视频| 亚洲欧美电影一区二区| 亚洲免费色视频| 亚洲综合图片区| 午夜精彩视频在线观看不卡| 亚洲第一搞黄网站| 日韩高清一级片| 看电影不卡的网站| 国内成人精品2018免费看| 国产成人免费视频一区| 成人久久视频在线观看| 99久久精品免费看| 91麻豆精品国产| 亚洲色图.com| xfplay精品久久| 欧美激情在线看| 中文字幕亚洲电影| 亚洲尤物在线视频观看| 丝袜美腿高跟呻吟高潮一区| 男人的j进女人的j一区| 国产在线国偷精品免费看| 成人看片黄a免费看在线| 欧美午夜精品电影| 精品久久久久久无| 中文字幕五月欧美| 日韩av一级电影| 国产丶欧美丶日本不卡视频| 91网站在线观看视频| 7777精品伊人久久久大香线蕉完整版 | 欧美激情综合五月色丁香| 国产精品夫妻自拍| 首页国产欧美久久| 亚洲欧美中日韩| 日本三级韩国三级欧美三级| 国产伦理精品不卡| 在线观看日韩av先锋影音电影院| 国产精品一线二线三线| 不卡一二三区首页| 在线综合视频播放| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲嫩草精品久久| 精品一区精品二区高清| av电影在线观看一区| 91精品国产欧美一区二区18| 久久精品人人做人人爽97| 亚洲一区二区三区四区五区中文| 精品无码三级在线观看视频 | 国产精品美女久久福利网站| 亚洲成人av电影在线| 懂色av一区二区夜夜嗨| 欧美日韩中文字幕一区| 国产欧美一区视频| 肉丝袜脚交视频一区二区| 成人av在线网站| 欧美一区二区性放荡片| 国产偷国产偷精品高清尤物| 91在线观看高清| 婷婷六月综合亚洲| 在线看日韩精品电影| 国产亚洲精品超碰| 国产一区二区在线观看免费| 99riav一区二区三区| 一区二区三区精品久久久| 另类人妖一区二区av| 美洲天堂一区二卡三卡四卡视频| 欧美一二区视频| 免费成人美女在线观看.| 成a人片国产精品| 欧美日韩国产精品成人| 国产精品大尺度| 国产一区二区三区四区五区美女| 欧美乱妇一区二区三区不卡视频| 亚洲激情自拍视频| 成人99免费视频| 久久久久国产精品麻豆| 日本91福利区| 亚洲国产一区二区在线播放| 亚洲国产精品99久久久久久久久| 国产精品电影院| 麻豆精品国产传媒mv男同| 欧美精选在线播放| 一区二区日韩av| 91啪九色porn原创视频在线观看| 国产欧美1区2区3区| 韩国在线一区二区| 精品区一区二区| 免费三级欧美电影| 亚洲国产精品精华液2区45| 国产一区在线观看视频| 日韩欧美成人一区二区| 天天色天天爱天天射综合| 欧美日韩精品专区| 亚洲超碰精品一区二区| 欧美日韩精品一区二区天天拍小说 | 久久久久久一级片| 国产一区二区三区免费| 久久日韩精品一区二区五区| 美国精品在线观看| 欧美成人vps| 激情综合五月天| 在线视频观看一区| 久久av中文字幕片| 成人精品高清在线| 欧美日韩国产综合一区二区三区| 国产精品福利av| 91色porny在线视频| 亚洲激情六月丁香| 欧美日韩视频第一区| 日韩中文字幕区一区有砖一区| 337p亚洲精品色噜噜| 久热成人在线视频| 久久久久久久久久久黄色| 国产精品久久国产精麻豆99网站 | 色成人在线视频| 一区av在线播放| 91精品久久久久久久久99蜜臂| 麻豆国产精品官网| 色狠狠桃花综合| 日本欧美久久久久免费播放网| 欧美一卡二卡在线| 国产精品系列在线观看| 国产精品久久久久久一区二区三区| 91免费国产视频网站| 亚洲在线一区二区三区| 日韩欧美的一区二区| 成人av影院在线| 亚洲国产乱码最新视频| 日韩三级伦理片妻子的秘密按摩| 国产精品1区二区.| 亚洲美女屁股眼交3| 91精品国产综合久久福利| 国产传媒日韩欧美成人| 亚洲男人的天堂网| 日韩欧美在线观看一区二区三区| 成人午夜视频网站| 午夜久久久久久久久久一区二区| www久久久久| 一本久久a久久精品亚洲| 日韩在线卡一卡二| 国产精品美女久久久久久久久 | 欧美mv和日韩mv的网站| 成人av电影在线| 日本欧美一区二区在线观看| 欧美经典一区二区| 国产一区二区三区久久悠悠色av| 亚洲欧美一区二区久久| 欧美一区二区三区免费观看视频| 成人黄色免费短视频| 午夜日韩在线观看| 国产女人aaa级久久久级| 6080午夜不卡| 99久久久国产精品免费蜜臀| 日本vs亚洲vs韩国一区三区二区 | 国产精品中文字幕一区二区三区| 亚洲欧美日韩人成在线播放| 欧美电视剧在线看免费| 色婷婷久久综合| 国产激情视频一区二区在线观看| 亚洲午夜三级在线| 欧美亚洲综合色| 粉嫩aⅴ一区二区三区四区 | 99视频一区二区| 午夜国产不卡在线观看视频| 国产精品拍天天在线| 精品国精品国产| 欧美日韩五月天| 91网站在线观看视频| 国产一区二区不卡老阿姨| 午夜激情一区二区| 亚洲精品中文字幕乱码三区| 精品国内二区三区| 91精品国产综合久久蜜臀| 在线免费观看一区| youjizz国产精品| 亚洲日本电影在线| 国产亚洲欧美一级| 精品福利视频一区二区三区| 欧美日韩国产高清一区二区| 色综合久久中文字幕| 成人午夜在线播放| 国产成人精品一区二区三区网站观看| 日韩中文字幕一区二区三区| 亚洲国产综合人成综合网站| 亚洲美女视频在线| 日韩毛片高清在线播放| 椎名由奈av一区二区三区| 国产精品久久久久久久久免费樱桃| 国产亚洲精品bt天堂精选| 久久精品免费在线观看| 久久久久久久综合狠狠综合|