777精品久无码人妻蜜桃-欧美在线观看视频一区-99精品网-伊人网中文字幕-99福利网-国产精品99久久久久久武松影视-日本黄色片免费看-免费观看高清在线观看-人妻少妇被粗大爽9797pw-日韩国产在线播放-国产日产成人免费视频在线观看-一区二区人妻-午夜看毛片-国产精品s-午夜免费av-国产精品色情国产三级在-国产精品资源在线

如何用VB實現(xiàn)聊天討論室和點對點會話

來源:期刊VIP網(wǎng)所屬分類:軟件開發(fā)時間:瀏覽:次

  在一個單位內(nèi)部或通過廣域協(xié)議(如X.25)互聯(lián)的行業(yè)內(nèi)部都有幾十或上萬臺計算機互聯(lián),用Intranet雖然可以建立聊天室,但實現(xiàn)點對點實時對話卻比較困難。本人用Winsock和VB自制了一套聊天室和對話系統(tǒng),特拿來供同行們參考。

  一·Winsock的主要屬性、事件和方法

  Winsock是不可見控件,控件文件名是MSWINSCK.OCX,全稱為Mcirosoftwinsockcontrol,使用時要將此控件調(diào)入工具箱。

  1·屬性:①Protocol=0//使用TCP協(xié)議;

  ②RemoteHost//準(zhǔn)備連接遠程機的IP地址

 ?、跼emotePort//連接遠程機的IP端口號(1024—65535之間)

 ?、躄ocalPort//本地機監(jiān)聽IP端口號必須與呼叫機端口號相同

  2·方法:①connect//申請連接遠程機

 ?、趌isten//設(shè)置監(jiān)聽

 ?、踑ccept//建立實際連接

 ?、躶enddata//發(fā)送數(shù)據(jù)

 ?、輌etdata//接收數(shù)據(jù)

  ⑥close//關(guān)閉連接

  3·事件:①connectionrequest//一方請求連接時另一方產(chǎn)生

 ?、赾onnect//一方機接受連接時另一方產(chǎn)生

 ?、踓lose//一方機關(guān)閉連接時另一方產(chǎn)生

  ④dataArrival//一方發(fā)送數(shù)據(jù)另一方產(chǎn)生

 ?、輊rror//請求連接失敗時產(chǎn)生

  二·制作方法

 ?、旁谝还こ讨刑砑觾蓚€表單form1(模擬客戶端)、form2(模擬服務(wù)器端)。

  form1中裝入控件:

  控件名

  主要屬性

  用途

  VB.Formform1

  caption=”雷萌聊天室”

  controlbox=0‘False

  模擬客戶機表單

  VB.Textboxtext1

  multiline=-1‘True

  scrollbars=3‘Bath

  用于輸入發(fā)往聊天室的信息

  VB.Textboxtext2

  locked=-1‘True

  multiline=-1‘True

  scrollbars=3‘Bath

  顯示從聊天室發(fā)來的信息

  VB.Comboboxcombo1

  text=”10.84.234.11”‘任定默認地址

  放入常用的地址

  VB.Commandbuttoncomm1

  caption=”退出”

  最小化form1

  VB.Commandbuttoncomm2

  caption=”連接”

  請求與輸入的地址連接

  VB.Commandbuttonsend

  caption=”發(fā)送”

  發(fā)送Text1中的內(nèi)容

  VB.Labellabel1

  caption=“請在此輸入發(fā)表的信息”

  Text1的框標(biāo)

  VB.Labellabel2

  caption=“聊天室或?qū)Ψ降男畔?rdquo;

  Text2的框標(biāo)

  VB.Labellabel3

  caption=”等待連接”

  顯示連接狀態(tài)信息

  VB.Labellabel4

  caption=”聊天室或?qū)Ψ降刂?rdquo;

  用于指示Combo1

  VB.Labellabel5

  caption=”操作:選地址連接,連接成功看到聊天室內(nèi)容后再輸信息發(fā)送”

  操作說明

  VB.Timertimer1

  interval=6000;enabled=false

  防止連接超時

  MSWinsocklib.winsocka

  用于數(shù)據(jù)傳輸

  form2中裝入控件:

  控件名

  主要屬性

  用途

  VB.Formform2

  caption=”接收信息”

  controlbox=0‘False

  模擬客戶機表單

  VB.Commandbuttoncommand1

  caption=”返回”

  隱含F(xiàn)orm2窗口

  VB.Commandbuttoncommand2

  caption=”對話”

  點對點會話時用此直接啟動Form1

  VB.Textboxtext1

  locked=-1‘True

  multiline=-1‘True

  scrollbars=3‘Bath

  存放聊天或?qū)υ拑?nèi)容

  VB.Labellabel1

  caption=”接收的信息”

  Text1的框標(biāo)

  MSWinsocklib.Winsocka

  用于監(jiān)聽

  MSWinsocklib.Winsockb

  用于傳送聊天信息

 ?、圃贔orm1的各控件事件中加入如下代碼:

  DimflagAsBoolean注釋:連接狀態(tài)變量

  PrivateSuba_Connect()

  flag=True

  EndSub

  PrivateSuba_DataArrival(ByValbytesTotalAsLong)

  DimiAsString

  a.GetDatai

  Label3.Caption="連接成功!"

  Comm2.MousePointer=0

  Form1.MousePointer=0

  Timer1.Enabled=False

  Ifi=Chr(0)Then

  Text2.Text="你是今天第一個進入本聊天室的客戶。"+Chr(13)+Chr(10)

  Else

  Text2.Text=Text2.Text+i

  EndIf

  Text2.SelStart=Len(Text2.Text)

  Send.MousePointer=0

  Combo1.Enabled=False

  Comm2.Caption="斷開連接"

  Text1.SetFocus

  EndSub

  PrivateSuba_Error(ByValNumberAsInteger,DescriptionAsString,ByValScodeAsLong,ByValSourceAsString,ByValHelpFileAsString,ByValHelpContextAsLong,CancelDisplayAsBoolean)

  flag=False

  Timer1.Enabled=False

  Comm2.MousePointer=0

  Form1.MousePointer=0

  MsgBox"網(wǎng)絡(luò)連接失敗!"

  Label3.Caption="等待連接"

  Combo1.Enabled=True

  Combo1.SetFocus

  a.Close

  Comm2.Caption="連接"

  EndSub

噶尔县| 武清区| 杨浦区| 盐山县| 新泰市| 凉山| 本溪市| 视频| 许昌县| 大连市| 永春县| 渝北区| 兴义市| 桐庐县| 宝兴县| 来安县| 师宗县| 民丰县| 扬中市| 临湘市| 新竹县| 海原县| 瑞丽市| 铁岭县| 广昌县| 诸城市| 炎陵县| 永安市| 东乌珠穆沁旗| 根河市| 阜城县| 白银市| 方正县| 龙岩市| 黑龙江省| 巴里| 南安市| 霍林郭勒市| 页游| 四会市| 扎兰屯市|