0

最近質問が多くて申し訳ありません
次の機能を使用すると、サーバーに正常に接続してログインできますが、問題はサーバーにログインするとすぐに切断されること
ですが、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 でこの関数を呼び出します
autoit コードを投稿することも役立つ場合は、ここに追加するように教えてください

4

1 に答える 1

1

ここに投稿したコードには、クライアントがソケットを閉じる原因となるようなものはありません。したがって、考えられる問題は、クライアントがそれを閉じているということではなく、サーバーが閉じているということです。その場合は、送信するデータが何らかの形で異なっている可能性があります。

于 2013-02-20T14:36:35.080 に答える