激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

<ul id="buwfs"><strike id="buwfs"><strong id="buwfs"></strong></strike></ul>
    <output id="buwfs"></output>
  • <dfn id="buwfs"><source id="buwfs"></source></dfn>
      <dfn id="buwfs"><td id="buwfs"></td></dfn>
      <div id="buwfs"><small id="buwfs"></small></div>
      <dfn id="buwfs"><source id="buwfs"></source></dfn>
      1. <dfn id="buwfs"><td id="buwfs"></td></dfn>
        始創(chuàng)于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊有禮 登錄
        • 掛牌上市企業(yè)
        • 60秒人工響應(yīng)
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補償
        全部產(chǎn)品
        您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

        用Winsock制作一套聊天室和對話系統(tǒng)

        發(fā)布時間:  2012/6/24 15:13:59
        ·Winsock的主要屬性、事件和方法

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

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

        ②RemoteHost//準備連接遠程機的IP地址

        ③RemotePort//連接遠程機的IP端口號(1024—65535之間)

        ④LocalPort//本地機監(jiān)聽IP端口號必須與呼叫機端口號相同

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

        ②listen//設(shè)置監(jiān)聽

        ③accept//建立實際連接

        ④senddata//發(fā)送數(shù)據(jù)

        ⑤getdata//接收數(shù)據(jù)

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

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

        ②connect//一方機接受連接時另一方產(chǎn)生

        ③close//一方機關(guān)閉連接時另一方產(chǎn)生

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

        ⑤error//請求連接失敗時產(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的框標

        VB.Labellabel2
        caption=“聊天室或?qū)Ψ降男畔?rdquo;
        Text2的框標

        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的框標

        MSWinsocklib.Winsocka

        用于監(jiān)聽

        MSWinsocklib.Winsockb

        用于傳送聊天信息




        ⑵在Form1的各控件事件中加入如下代碼:

        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



        PrivateSubComm1_Click()

        a.Close注釋:關(guān)閉連接

        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("關(guān)閉本聊天室!確認嗎?",36,"退出系統(tǒng)")=6Then

        End

        Else

        Form1.WindowState=1

        EndIf

        EndSub



        PrivateSubForm_Load()

        IfApp.PrevInstanceThen

        MsgBox"本系統(tǒng)已經(jīng)加載,請看任務(wù)攔!",48,"提示"

        End

        EndIf

        flag=False

        LoadForm2‘讀入form2進入監(jiān)聽

        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"網(wǎng)絡(luò)連接失敗(超時)!"

        Label3.Caption="等待連接"

        Combo1.Enabled=True

        Combo1.SetFocus

        a.Close

        Comm2.Caption="連接"

        EndSub



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

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

        Dimuser(maxn)AsBoolean



        PrivateSubCommand1_Click()

        Form2.Hide

        EndSub



        PrivateSubCommand2_Click()

        LoadForm1

        Form1.Show

        EndSub



        PrivateSubForm_Load()

        Dimstr1AsString

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

        注釋:winsock控件a作為服務(wù)器程序監(jiān)聽

        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注釋:發(fā)送數(shù)據(jù)

        b(i).SendDataChr(0)

        Else

        b(i).SendDataText1.Text

        EndIf

        Form2.Show

        EndSub



        PrivateSubs_Close(IndexAsInteger)

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

        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

        三·運行


        本文出自:億恩科技【mszdt.com】

        服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

      2. 您可能在找
      3. 億恩北京公司:
      4. 經(jīng)營性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經(jīng)營性ICP/ISP證:贛B2-20080012
      9. 服務(wù)器/云主機 24小時售后服務(wù)電話:0371-60135900
      10. 虛擬主機/智能建站 24小時售后服務(wù)電話:0371-60135900
      11. 專注服務(wù)器托管17年
        掃掃關(guān)注-微信公眾號
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
          0
         
         
         
         

        0371-60135900
        7*24小時客服服務(wù)熱線