VB.NET保持TCP连接活着

时间:2013-02-20 13:50:46

标签: vb.net

很抱歉,如果这些天我问了很多问题 通过以下功能,我可以成功连接并登录服务器,但问题是当它登录到服务器时会立即断开连接 但是,当我尝试使用autoit登录到该服务器时,它工作并保持连接 这是我在VB.NET中使用的功能(它在一个类中)

Public Shared ConnectionSocket As New TcpClient
Public Shared Stream As NetworkStream

Public Shared Function Connect(ByRef IP As String, ByRef Port As Integer)
    ConnectionSocket.Connect(System.Net.IPAddress.Parse(IP), Port)
    Stream = ConnectionSocket.GetStream
    ConnectionSocket.Client.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.KeepAlive, True)
    Dim RecievedBytes(ConnectionSocket.ReceiveBufferSize) As Byte
    Dim Temp As New List(Of Byte())
    Dim Temp2 As New List(Of Byte())
    Dim Data As Byte()
    Dim Final As Byte()
    Temp.Add({&H10, &H1})
    Temp.Add({&H0})
    Temp.Add({&H97, &H2F})
    Temp.Add(UserPacket)
    Temp.Add(PasswordPacket)
    Temp.Add({&H0})
    Temp.Add({&H1})
    Temp.Add({&H0})
    Temp.Add({&H77, &HD1, &HCA, &HC3, &HEB, &H3A, &H2, &H81, &HDB, &HA, &H51})
    Temp.Add({&H0})
    Temp.Add({&H69, &H6E, &H74, &H6C})
    Temp.Add({&H0, &H0, &H0})
    Temp.Add(StringToByte(My.Settings.BotUsername))
    Temp.Add({&H0})
    Data = Temp.SelectMany(Function(x) x).ToArray()
    Temp2.Add(IntegerToByte(Data.Length - 4))
    Temp2.Add(Data)
    Final = Temp2.SelectMany(Function(x) x).ToArray()

    Stream.Write(Final, 0, Final.Length)

    While True

        Try
            Stream.Read(RecievedBytes, 0, CInt(ConnectionSocket.ReceiveBufferSize))
        Catch ex As Exception

        End Try

    End While
End Function

我在MainForm_Load上调用此函数 如果还发布自动代码有帮助,请告诉我将其添加到此处

1 个答案:

答案 0 :(得分:1)

您在此处发布的代码中没有任何内容显示会导致客户端关闭套接字。所以,可能的问题不是客户端正在关闭它,而是服务器是。如果是这种情况,可能是因为您发送的数据在某种程度上是不同的。