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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? talker.vb

?? Visual Basic.NET控件時尚編程百例
?? VB
字號:
Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Imports System.Threading
Imports System.Net.Sockets
Imports System.Windows.Forms

Class Talker
    Implements IDisposable
    '實現接口
    Public socket As socket
    '定義Socket
    Public reader As TextReader
    '定義讀出流
    Public writer As TextWriter
    '定義寫入流
    Public client As Boolean
    '標識程序是客戶端還是服務器端
    Public endPoint As IPEndPoint
    'IP地址
    Public prevSendText As String
    '在此之前發出去的信息
    Public prevReceiveText As String
    '在此之前收到的信息
    Public statusText As String
    '連接狀態
    Public statusObj As Status
    '定義Status類型變量

    Public Sub Dispose() Implements IDisposable.Dispose
        GC.SuppressFinalize(Me)
        If Not (reader Is Nothing) Then
            '這部分代碼用來釋放資源,銷毀對象
            reader.Close()
            reader = Nothing
            '釋放讀出流對象
        End If
        If Not (writer Is Nothing) Then
            writer.Close()
            '釋放寫入流對象
            writer = Nothing
        End If
        If Not (socket Is Nothing) Then
            socket.Close()
            '釋放Socket對象
            socket = Nothing
        End If
    End Sub

    Public Sub New(ByVal endPoint As IPEndPoint, ByVal client As Boolean)
        '構造函數
        Me.endPoint = endPoint
        Me.client = client
        socket = Nothing
        reader = Nothing
        writer = Nothing
        statusText = String.Empty
        prevSendText = String.Empty
        prevReceiveText = String.Empty
    End Sub

    Protected Overrides Sub Finalize()
        '析構
        Dispose()
        MyBase.Finalize()
    End Sub

    Friend Event Notifications(ByVal notify As Notification, ByVal data As Object)
    '定義【通知】事件,對notify進行處理

    Public Enum Notification
        '系統可能的通知
        Initialized = 1
        StatusChange
        ReceivedAppend
        ReceivedRefresh
        EndNotify
        ErrorNotify
    End Enum

    Public Enum Status
        '狀態
        偵聽
        已正常連接
    End Enum

    Public Sub Start()
        ThreadPool.QueueUserWorkItem(New System.Threading.WaitCallback _
        (AddressOf EstablishSocket))
        '將用戶項排隊到線程池,調用指定的委托,
        '并指定在接受線程池服務時要傳遞給委托的對象()
    End Sub

    Private Sub EstablishSocket(ByVal state As Object)
        Dim stream As NetworkStream
        '定義流
        stream = Nothing
        '初始化
        Try
            If Not client Then
                '如果不是客戶端,則進行偵聽
                Dim listener As Socket
                Try
                    listener = New Socket(AddressFamily.InterNetwork, _
                    SocketType.Stream, ProtocolType.Tcp)
                    '實例化Socket類
                    listener.Blocking = True
                    '指示Socket處于阻塞模式
                    listener.Bind(endPoint)
                    '綁定本地的IP地址
                    SetStatus(Status.偵聽)
                    '顯示狀態
                    listener.Listen(0)
                    '偵聽
                    socket = listener.Accept()
                    '處理傳入的連接請求
                    listener.Close()
                    '關閉Socket連接
                    stream = New NetworkStream(socket)
                    '實例化流類
                    reader = New StreamReader(stream)
                    '實例化讀出流類
                    writer = New StreamWriter(stream)
                    '實例化寫入流類
                    writer.Write("WINTALK .NET")
                    writer.Flush()
                    '清理緩沖區,將所有的緩沖數據寫入基礎設備
                Catch e As SocketException
                    '如果已經存在了一個偵聽端,那么這個端口作為客戶端
                    If e.ErrorCode = 10048 Then
                        client = True
                        endPoint = New IPEndPoint _
                        (Dns.Resolve("127.0.0.1").AddressList(0), endPoint.Port)
                        '設置端口地址
                    Else
                        RaiseEvent Notifications _
                        (Notification.ErrorNotify, "初始化Socket時發生錯誤:" & ControlChars.CrLf & e.ToString())
                        '觸發事件
                    End If
                End Try
            End If

            If client Then  '以客戶端形式進行連接
                Dim temp As New Socket(AddressFamily.InterNetwork, _
                SocketType.Stream, ProtocolType.Tcp)
                '實例化Socket類
                temp.Blocking = True
                '指示Socket處于阻塞模式
                temp.Connect(endPoint)
                socket = temp
                socket.SetSocketOption(SocketOptionLevel.Socket, _
                SocketOptionName.ReceiveTimeout, 5000)
                socket.SetSocketOption(SocketOptionLevel.Socket, _
                SocketOptionName.SendTimeout, 5000)
                stream = New NetworkStream(socket)
                reader = New StreamReader(stream)
                writer = New StreamWriter(stream)
                Dim handshake(11) As Char
                '判斷是否連接上,通過發出的 WINTALK .NET 消息來判斷
                Try
                    If Not (reader.Read(handshake, 0, 12) > 0 And New _
                    String(handshake) = "WINTALK .NET") Then
                        socket.Close()
                        socket = Nothing
                    Else
                        socket.SetSocketOption(SocketOptionLevel.Socket, _
                        SocketOptionName.ReceiveTimeout, 0)
                        socket.SetSocketOption(SocketOptionLevel.Socket, _
                        SocketOptionName.SendTimeout, 0)
                    End If
                Catch
                    socket.Close()
                    socket = Nothing
                End Try
            End If
            If Not (socket Is Nothing) Then
                SetStatus(Status.已正常連接)
                RaiseEvent Notifications(Notification.Initialized, Me)
                '觸發事件進行初始化
                ReceiveTalk() '開始收取信息
                RaiseEvent Notifications(Notification.EndNotify, "遠程連接已經關閉")
            Else
                RaiseEvent Notifications(Notification.ErrorNotify, _
                "建立Socket失敗,檢查端口設置是否正確")
            End If
        Catch e As IOException
            Dim sockExcept As SocketException = _
            CType(e.InnerException, SocketException)
            If Not (sockExcept Is Nothing) And 10054 = sockExcept.ErrorCode Then
                RaiseEvent Notifications(Notification.EndNotify, "遠程連接已經斷開")
            Else
                RaiseEvent Notifications(Notification.ErrorNotify, "Socket 錯誤" & _
                ControlChars.CrLf & e.Message)
            End If
        Catch e As Exception
            RaiseEvent Notifications(Notification.ErrorNotify, "Socket 錯誤" & _
            ControlChars.CrLf & e.Message)
        End Try
    End Sub

    Public Sub SendTalk(ByVal newText As String)
        '向遠程機器發送信息
        Dim send As String
        If prevSendText.Length <= newText.Length And _
        String.CompareOrdinal(newText, 0, prevSendText, 0, _
        prevSendText.Length) = 0 Then
            '判斷是否是附加的字符串
            Dim append As [String] = newText.Substring(prevSendText.Length)
            send = String.Format("A{0}:{1}", append.Length, append)
        Else
            send = String.Format("R{0}:{1}", newText.Length, newText)
            '否則取代該字符串
        End If '
        writer.Write(send)
        '發送字符串
        writer.Flush()
        '清理緩沖區
        prevSendText = newText
        '保存字符串為后面作比較
    End Sub

    Private Sub SetStatus(ByVal statusObj As Status)
        Me.statusObj = statusObj
        '獲取系統狀態
        RaiseEvent Notifications(Notification.StatusChange, statusObj)
        '設置狀態
    End Sub

    Private Sub ReceiveTalk()
        '從遠程客戶端獲取信息
        Dim commandBuffer(19) As Char
        Dim oneBuffer(0) As Char
        Dim readMode As Integer = 1
        Dim counter As Integer = 0
        Dim textObj As New StringBuilder()
        While readMode <> 0
            If reader.Read(oneBuffer, 0, 1) = 0 Then
                readMode = 0
            Else
                Select Case readMode
                    Case 1
                        If counter = commandBuffer.Length Then
                            readMode = 0
                        End If
                        If oneBuffer(0) <> ":"c Then
                            commandBuffer(counter) = oneBuffer(0)
                            counter = counter + 1
                        Else
                            counter = Convert.ToInt32(New String(commandBuffer, 1, _
                            counter - 1))
                            If counter > 0 Then
                                readMode = 2
                                textObj.Length = 0
                            Else
                                If commandBuffer(0) = "R"c Then
                                    counter = 0
                                    prevReceiveText = String.Empty
                                    RaiseEvent Notifications _
                                    (Notification.ReceivedRefresh, prevReceiveText)
                                End If
                            End If
                        End If
                    Case 2
                        textObj.Append(oneBuffer(0))
                        counter = counter - 1
                        If counter = 0 Then
                            Select Case commandBuffer(0)
                                Case "R"c
                                    prevReceiveText = textObj.ToString()
                                    RaiseEvent Notifications _
                                    (Notification.ReceivedRefresh, prevReceiveText)
                                Case Else
                                    Dim newText As String
                                    newText = textObj.ToString()
                                    prevReceiveText += newText
                                    RaiseEvent Notifications _
                                    (Notification.ReceivedAppend, newText)
                            End Select
                            readMode = 1
                        End If
                    Case Else
                        readMode = 0
                End Select
            End If
        End While
    End Sub

End Class

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久精品免费观看| 欧美一区二区三级| 久久婷婷久久一区二区三区| 一区二区三区美女| 91麻豆国产福利精品| 久久亚洲综合av| 毛片不卡一区二区| 欧美乱妇15p| 亚洲高清在线视频| 91香蕉视频污在线| 一区二区三区精品久久久| 久久国产精品第一页| 日韩精品中文字幕在线不卡尤物| 亚洲成国产人片在线观看| 欧美伊人久久大香线蕉综合69 | 欧美一区二区视频在线观看| 一区二区三区在线播放| 欧美艳星brazzers| 日本美女一区二区三区| 久久久高清一区二区三区| 国产91丝袜在线播放| 国产精品乱人伦中文| 欧美日韩精品欧美日韩精品一| 视频一区欧美日韩| 国产日本一区二区| 欧美午夜精品久久久久久超碰| 亚洲午夜免费电影| 精品国产乱码久久| 一本大道久久a久久综合婷婷| 久久爱www久久做| 国产精品久久久久久久久果冻传媒 | 亚洲欧美日韩中文播放| 欧美性猛片xxxx免费看久爱 | 国产精品你懂的在线欣赏| 成人性生交大合| 亚洲一区二区三区爽爽爽爽爽| 欧美一级日韩一级| 91片黄在线观看| 国产精品一级片在线观看| 国产精品不卡在线| 久久久精品影视| 欧美夫妻性生活| 色婷婷精品久久二区二区蜜臂av| 韩国v欧美v日本v亚洲v| 午夜a成v人精品| 亚洲国产精品自拍| 一区精品在线播放| 国产精品毛片高清在线完整版| 日韩午夜精品视频| 欧美一级在线视频| 欧美一级二级在线观看| 欧美丝袜丝交足nylons图片| 国产激情精品久久久第一区二区| 亚洲人成伊人成综合网小说| 精品国产一二三区| 欧美吻胸吃奶大尺度电影| 欧美色图激情小说| 国产精品久久久久久久久快鸭| 欧美无砖砖区免费| 99精品欧美一区二区三区小说| 色婷婷综合久色| 久久草av在线| 亚洲另类在线一区| 日韩伦理av电影| 久久综合久久综合久久| 日韩欧美在线综合网| 欧美日韩高清影院| 欧美一区二区三区思思人| 欧美日韩成人综合| 欧美电影一区二区| 日韩精品中文字幕在线不卡尤物| 国产综合色精品一区二区三区| 国内精品在线播放| 国产精品亚洲专一区二区三区| 毛片av一区二区| 国产高清亚洲一区| 91毛片在线观看| av不卡在线播放| 国产不卡视频一区二区三区| 精品一区二区三区免费毛片爱| 国产一区二区三区四区五区美女| 国产在线看一区| 成人的网站免费观看| 国产九九视频一区二区三区| 丁香激情综合五月| 欧美性大战久久久久久久蜜臀 | 欧美大肚乱孕交hd孕妇| 久久久精品综合| 亚洲自拍偷拍欧美| 激情综合网天天干| 91福利视频久久久久| 色综合中文字幕国产 | 成人sese在线| 在线电影国产精品| 国产精品国产自产拍高清av| 成人黄色电影在线| 色哟哟在线观看一区二区三区| 欧美放荡的少妇| 久久久久88色偷偷免费| 污片在线观看一区二区| 91在线观看污| 国产亚洲精久久久久久| 男女男精品视频网| 欧美性猛交xxxxxxxx| 国产精品不卡在线| 国产精品一区二区无线| 99久久精品免费看国产| 久久久精品天堂| 国产精品一品二品| 欧美一区二区三区啪啪| 亚洲视频一区二区免费在线观看| 精品一区二区三区蜜桃| 欧美日韩国产免费| 午夜精品成人在线视频| 色婷婷亚洲精品| 亚洲五月六月丁香激情| 色婷婷久久综合| 午夜精品爽啪视频| 成人欧美一区二区三区视频网页| 国产欧美视频一区二区三区| 香蕉久久一区二区不卡无毒影院 | 久久蜜桃av一区精品变态类天堂 | 制服丝袜亚洲精品中文字幕| 尤物视频一区二区| 欧美日韩免费不卡视频一区二区三区| 国产精品第一页第二页第三页| 91亚洲国产成人精品一区二三| 一区二区三区中文字幕在线观看| 91色视频在线| 亚洲香蕉伊在人在线观| 国产精品毛片大码女人| 色婷婷激情综合| 日韩**一区毛片| 日韩一区欧美一区| 91精品国产综合久久香蕉的特点| 麻豆精品在线视频| 中文子幕无线码一区tr| 欧美日韩三级在线| 精品亚洲porn| 有码一区二区三区| 精品99一区二区| 国产寡妇亲子伦一区二区| 一区二区三区不卡视频| 久久综合一区二区| 粉嫩av亚洲一区二区图片| 日日摸夜夜添夜夜添亚洲女人| 欧美经典三级视频一区二区三区| 91在线免费看| 国产精一区二区三区| 亚洲超碰精品一区二区| 国产精品免费看片| 久久久久久影视| 日韩视频国产视频| 99国产精品国产精品久久| 国产在线日韩欧美| 久久电影网电视剧免费观看| 亚欧色一区w666天堂| 亚洲一卡二卡三卡四卡无卡久久| 国产精品久久久久三级| 欧美日韩电影在线| 欧美精品777| 欧美一级午夜免费电影| 欧美精品一级二级三级| a级精品国产片在线观看| 岛国一区二区三区| 成人激情校园春色| 91亚洲精品久久久蜜桃网站 | 成人欧美一区二区三区小说| 蜜乳av一区二区| 亚洲国产精品久久人人爱| 亚洲欧洲综合另类| 亚洲综合久久久| 日韩av午夜在线观看| 激情六月婷婷综合| 丁香亚洲综合激情啪啪综合| 丁香啪啪综合成人亚洲小说 | 久久久国产一区二区三区四区小说 | 精品久久久久久久久久久久久久久久久 | 2017欧美狠狠色| 成人欧美一区二区三区黑人麻豆| 亚洲18色成人| 一本色道久久综合亚洲精品按摩| 在线观看91精品国产入口| 日韩欧美中文字幕精品| 综合久久综合久久| 国产又粗又猛又爽又黄91精品| 欧美午夜电影网| 国产精品久久久久一区| 免费高清在线一区| 欧美酷刑日本凌虐凌虐| 亚洲视频一区二区在线| 国产成人啪午夜精品网站男同| 欧美久久久久久久久| 亚洲综合区在线| 色一情一伦一子一伦一区| 国产精品毛片无遮挡高清| 国产大陆精品国产| 国产精品欧美精品| 成人一区在线观看| 久久久久久电影|