⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmchatclnt.frm

📁 vb代码集,收集许多VB网络编程代码
💻 FRM
字号:
VERSION 5.00
Begin VB.Form frmChat 
   Caption         =   "Chat Client"
   ClientHeight    =   4890
   ClientLeft      =   1905
   ClientTop       =   2595
   ClientWidth     =   8400
   LinkTopic       =   "Form1"
   PaletteMode     =   1  'UseZOrder
   ScaleHeight     =   4890
   ScaleWidth      =   8400
   Begin VB.TextBox Host 
      Height          =   285
      Left            =   1440
      TabIndex        =   9
      Text            =   "ChatSvr"
      Top             =   240
      Width           =   2415
   End
   Begin VB.TextBox txtUserName 
      Height          =   285
      Left            =   1440
      TabIndex        =   8
      Text            =   "UserName"
      Top             =   600
      Width           =   2415
   End
   Begin VB.TextBox txtPort 
      Height          =   285
      Left            =   5520
      TabIndex        =   7
      Text            =   "2000"
      Top             =   240
      Width           =   2655
   End
   Begin VB.TextBox txtThisHost 
      Height          =   285
      Left            =   5520
      TabIndex        =   6
      Text            =   "This Host Name"
      Top             =   600
      Width           =   2655
   End
   Begin VB.Timer Timer1 
      Left            =   3600
      Top             =   1440
   End
   Begin VB.CommandButton cmdSend 
      Caption         =   "Send Text"
      Height          =   615
      Left            =   6960
      TabIndex        =   5
      Top             =   4080
      Width           =   1215
   End
   Begin VB.TextBox txtSend 
      Height          =   1575
      Left            =   120
      TabIndex        =   4
      Top             =   3120
      Width           =   6495
   End
   Begin VB.CommandButton cmdExit 
      Caption         =   "Exit"
      Height          =   615
      Left            =   6960
      TabIndex        =   3
      Top             =   2760
      Width           =   1215
   End
   Begin VB.CommandButton DoFinger 
      Caption         =   "Connect"
      Height          =   615
      Left            =   6960
      TabIndex        =   1
      Top             =   1320
      Width           =   1215
   End
   Begin VB.TextBox HostResponse 
      BeginProperty Font 
         Name            =   "Courier New"
         Size            =   8.25
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   1575
      Left            =   120
      MultiLine       =   -1  'True
      ScrollBars      =   3  'Both
      TabIndex        =   0
      Top             =   1320
      Width           =   6495
   End
   Begin VB.Label lblUserName 
      Caption         =   "User Name;"
      Height          =   255
      Left            =   120
      TabIndex        =   13
      Top             =   600
      Width           =   1215
   End
   Begin VB.Label lblPort 
      Caption         =   "Port:"
      Height          =   255
      Left            =   4320
      TabIndex        =   12
      Top             =   240
      Width           =   975
   End
   Begin VB.Label Label5 
      Caption         =   "This Host:"
      Height          =   255
      Left            =   4320
      TabIndex        =   11
      Top             =   600
      Width           =   1095
   End
   Begin VB.Label Label6 
      Caption         =   "Server:"
      Height          =   255
      Left            =   120
      TabIndex        =   10
      Top             =   240
      Width           =   855
   End
   Begin VB.Label Label1 
      Caption         =   "Communication:"
      Height          =   255
      Left            =   120
      TabIndex        =   2
      Top             =   1080
      Width           =   1335
   End
End
Attribute VB_Name = "frmChat"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim formHeightDiff As Integer
Dim formWidthDiff As Integer
Dim StartupData As WSADataType
Dim Sock As Integer
Dim SocketBuffer As sockaddr




Public Function VBgethostname() As String
    Dim tempstr As String
    Dim strlen As Integer, retval As Integer
        Dim StartupData As WSADataType

    retval = WSAStartup(&H101, StartupData)
    If retval = SOCKET_ERROR Then Exit Function
    
    strlen = 128
    tempstr = Space$(strlen)
    retval = 0
    retval = gethostname(tempstr, strlen)
    If retval = 0 Then
        VBgethostname = Left(Trim$(tempstr), (InStr(Trim$(tempstr), Chr(0)) - 1))
    Else
        VBgethostname = "get_hostname: ERROR"
    End If
    tempstr = ""
    
End Function


Public Function VBgetusername() As String
    Dim tempstr As String
    Dim strlen As Integer, retval As Integer
    Dim lname As Long
    strlen = 128
    tempstr = Space$(strlen)
    retval = WNetGetUser(lname, tempstr, 128)
    If retval = 0 Then
        VBgetusername = Trim$(tempstr)
    Else
        VBgetusername = "getusername: ERROR"
    End If
    tempstr = ""
End Function


Private Sub cmdExit_Click()
    closesocket Sock
    End

End Sub

Private Sub cmdSend_Click()
    Dim RC As Integer
    Dim IPAddr As Long
    Dim MsgBuffer As String * 2048
    Dim Regel As String
    Dim Bytes As Integer
    Dim Character As String '
    Dim FromAddr As String
    Dim FromName As String
    Dim ToAddr As String
    Dim ToName As String
    Dim SelectOps As Long

    Regel = txtSend & Chr(13) & Chr(10) '
    HostResponse.Text = HostResponse.Text + Regel
    RC = send(Sock, ByVal Regel, Len(Regel), 0)
    If RC = SOCKET_ERROR Then
        HostResponse.Text = "Cannot Send Request." + _
                            Chr$(13) + Chr$(10) + _
                            Str$(WSAGetLastError()) + _
                            GetWSAErrorString(WSAGetLastError())
        closesocket Sock
        RC = WSACleanup()
        Exit Sub
    End If
    

End Sub


Private Sub Form_Load()
    'formHeightDiff = Finger.Height - HostResponse.Height
    'formWidthDiff = Finger.Width - HostResponse.Width

    Me.txtUserName = VBgetusername()
    Me.txtThisHost = VBgethostname

End Sub

Private Sub Form_Resize()
    'HostResponse.Height = Finger.Height - formHeightDiff
    'HostResponse.Width = Finger.Width - formWidthDiff
End Sub

Private Sub DoFinger_Click()
    Dim RC As Integer
    Dim IPAddr As Long
    Dim MsgBuffer As String * 2048
    Dim Regel As String
    Dim Bytes As Integer
    Dim Character As String
    Dim FromAddr As String
    Dim FromName As String
    Dim ToAddr As String
    Dim ToName As String
    Dim SelectOps As Long

    HostResponse.Text = "Starting:" & Chr$(13) + Chr$(10)
    RC = WSAStartup(&H101, StartupData)
    If RC = SOCKET_ERROR Then Exit Sub

    IPAddr = GetHostByNameAlias(Host)
    If IPAddr = -1 Then
        HostResponse.Text = "Unknown Host: " + Host
        Exit Sub
    End If

    Sock = socket(AF_INET, SOCK_STREAM, 0)
    If Sock = SOCKET_ERROR Then
        HostResponse.Text = "Cannot Create Socket."
        Exit Sub
    End If

    SocketBuffer.sin_family = AF_INET
    SocketBuffer.sin_port = htons(4000) 'GetServiceByName("smtp", "TCP")
    SocketBuffer.sin_addr = IPAddr
    SocketBuffer.sin_zero = String$(8, 0)
        '   String: Returns a repeating character string of the length specified.
        
    SelectOps = FD_READ Or FD_WRITE Or FD_CLOSE Or FD_CONNECT
    RC = connect(Sock, SocketBuffer, Len(SocketBuffer)) ' Blocking Connection Request
    DoEvents
    
    If RC = SOCKET_ERROR Then
        HostResponse.Text = "Cannot Connect to ... Server." + _
                            Chr$(13) + Chr$(10) + _
                            GetWSAErrorString(WSAGetLastError())

        closesocket Sock
        RC = WSACleanup()
        Exit Sub
    End If
    DoEvents
    RC = ioctlsocket(Sock, FIONBIO, True)  ' Set Socket to non blocking if connection successful
    If RC = SOCKET_ERROR Then
        HostResponse.Text = "Cannot unblock socket... " + _
                            Chr$(13) + Chr$(10) + _
                            GetWSAErrorString(WSAGetLastError())

        closesocket Sock
        RC = WSACleanup()
        Exit Sub
    End If
    Timer1.Interval = 50
    DoEvents
    DoFinger.Enabled = False

End Sub



Public Function ReadLineFromSocket(Sock As Integer)
    Dim Tekens As String * 100
    Dim Aantal As Integer
    Dim Character As String * 1
    Dim Result As String
    Dim Result2 As String
    ' Carriage return (vbCr = Chr$(13))
    ' Linefeed (vbLf = Chr$(10))
       
    DoEvents
    Do
        DoEvents
        Aantal = recv(Sock, ByVal Tekens, 1, 0)  ' Non-Blocking!
        
        If (Aantal > 0) Then
            Character = Left$(Tekens, Aantal)
            If (Asc(Character) >= Asc(" ")) Then
                Result = Result & Character
            End If
        Else
            Result = ""
            Exit Do
        End If
        If Character = "" Then
            Character = Chr(13)
        End If
    Loop While ((Aantal > 0) And (Asc(Character) <> 13))
    ReadLineFromSocket = Result
End Function

Private Sub Timer1_Timer()
    Dim Regel As String

    Regel = ReadLineFromSocket(Sock)
    If Len(Regel) > 0 Then
        HostResponse.Text = HostResponse.Text & "<<< " & Regel & vbCrLf
    End If
    DoEvents
End Sub


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -