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

首頁 > 學院 > 開發設計 > 正文

用VB實現聊天討論室和點對點會話

2019-11-18 17:35:58
字體:
來源:轉載
供稿:網友
在一個單位內部或通過廣域協議(如X.25)互聯的行業內部都有幾十或上萬臺計算機互聯,用Intranet雖然可以建立聊天室,但實現點對點實時對話卻比較困難。本人用Winsock和VB自制了一套聊天室和對話系統,特拿來供同行們參考。

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

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

1·屬性:①PRotocol=0//使用TCP協議;

②RemoteHost//準備連接遠程機的
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"網絡連接失敗!"

Label3.Caption="等待連接"

Combo1.Enabled=True

Combo1.SetFocus

a.Close

Comm2.Caption="連接"

EndSub



PrivateSubComm1_Click()

a.Close注釋:關閉連接

Form1.WindowState=1

EndSub



PrivateSubComm2_Click()

IfComm2.Caption="斷開連接"Then

a.Close

Comm2.Caption="連接"

Label3.Caption="等待連接"

Combo1.Enabled=True

Timer1.Enabled=False

Comm2.MousePointer=0

Form1.MousePointer=0

Else

Text2.Text=""

Label3.Caption="正在連接.."

Comm2.MousePointer=11

Form1.MousePointer=11

Timer1.Enabled=True

flag=False

a.Protocol=sckTCPProtocol

a.RemoteHost=Combo1.Text

a.RemotePort=3000

a.Connect

EndIf

EndSub



PrivateSubForm_DblClick()

IfMsgBox("關閉本聊天室!確認嗎?",36,"退出系統")=6Then

End

Else

Form1.WindowState=1

EndIf

EndSub



PrivateSubForm_Load()

IfApp.PrevInstanceThen

MsgBox"本系統已經加載,請看任務攔!",48,"提示"

End

EndIf

flag=False

LoadForm2‘讀入form2進入監聽

EndSub



PrivateSubSend_Click()

DimSAsString

OnErrorGoToffff‘防止鏈路中斷

Send.MousePointer=11

IfRight(Text1.Text,1)<>Chr(10)Then

S=Text1.Text Chr(13) Chr(10)

Else

S=Text1.Text

EndIf

IfflagThen

a.SendDataS

EndIf

ExitSub

ffff:

MsgBox"連接中斷!",48,"提示"

a.Close

Send.MousePointer=0

Comm2.Caption="連接"

Label3.Caption="等待連接"

Combo1.Enabled=True

Comm2.MousePointer=0

Form1.MousePointer=0

ExitSub

EndSub



PrivateSubTimer1_Timer()

flag=False

Timer1.Enabled=False

Comm2.MousePointer=0

Form1.MousePointer=0

MsgBox"網絡連接失敗(超時)!"

Label3.Caption="等待連接"

Combo1.Enabled=True

Combo1.SetFocus

a.Close

Comm2.Caption="連接"

EndSub



⑶在Form2的各控件事件中加入如下代碼:

Constmaxn=200‘最大同時連接本機的客戶數

Dimuser(maxn)AsBoolean



PrivateSubCommand1_Click()

Form2.Hide

EndSub



PrivateSubCommand2_Click()

LoadForm1

Form1.Show

EndSub



PrivateSubForm_Load()

Dimstr1AsString

Form2.Caption="雷萌通信軟件"

注釋:winsock控件a作為服務器程序監聽

a.LocalPort=3000

a.Listen

EndSub



PrivateSuba_ConnectionRequest(ByValrequestIDAsLong)

DimiAsLong

Fori=1Tomaxn‘當一客戶請求時給啟動一Winsock控件標志號

IfNotuser(i)Then

user(i)=True

ExitFor

EndIf

Nexti

Ifi>maxnThen

ExitSub

EndIf

Loadb(i)‘當一客戶請求時啟動一Winsock控件

b(i).AcceptrequestID注釋:實際建立連接

IfText1.Text=""Then注釋:發送數據

b(i).SendDataChr(0)

Else

b(i).SendDataText1.Text

EndIf

Form2.Show

EndSub



PrivateSubs_Close(IndexAsInteger)

b(Index).Close注釋:關閉連接

Unloadb(Index)注釋:卸載一個WinSock控件

user(Index)=False

EndSub

PrivateSubb_DataArrival(IndexAsInteger,ByValbytesTotalAsLong)

DimstrAsString

DimiAsLong

b(Index).GetDatastr

Text1.Text=Text1.Text str

Fori=1Tomaxn

Ifuser(i)Then

b(i).SendDatastr

EndIf

Nexti

EndSub

三·運行

本程序在VB6.0中編譯通過,運行后最小化到任務欄上,也可以用API的Shell_Notifyicon函數做入右下角的指示器欄中常駐內存。你可以在網絡中用一個固定的機器地址作為聊天討論室,其他用戶都選該機地址連接進入該室聊天或討論。各用戶也可選各自熟悉的地址進行連接對話,雙擊form1空白處從內存中撤出系統。根據同樣的原理可以制作電子郵件系統。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奉贤区| 唐河县| 平南县| 确山县| 鄄城县| 涡阳县| 阳东县| 岳普湖县| 龙州县| 乐亭县| 方正县| 阿拉善左旗| 北辰区| 鄂伦春自治旗| 汾阳市| 望谟县| 濉溪县| 丰县| 白河县| 衡阳市| 苗栗市| 沭阳县| 三都| 文水县| 淮南市| 靖江市| 昌黎县| 五大连池市| 新昌县| 买车| 邹城市| 左贡县| 聂荣县| 保定市| 花垣县| 常德市| 克东县| 东港市| 孝义市| 剑河县| 云龙县|