我爲我的遊戲服務器開發了一個應用程序。現在,在這個應用程序中,當我按下「連接」時,它將數據發送到我的遊戲服務器。它的確如此,但問題是,當它發送連接時它會自動關閉它,而我不想關閉它,因爲我有一個套接字插件,在玩家離開遊戲後殺死TCP連接。現在在我的本地主機上它工作,TCP不會「死」,但在我的VPS它斷開連接,有人可以請檢查我的代碼,看看我是否做錯了什麼?爲什麼我的TCP連接關閉?
Dim p() As Process
Dim gta() As Process
p = Process.GetProcessesByName("samp")
gta = Process.GetProcessesByName("gta_sa")
If p.Count > 0 Then
MsgBox("Vec imate pokrenut SAMP - ugasite ga.")
ElseIf gta.Count > 0 Then
MsgBox("Vec imate pokrenut GTA San Andreas - ugasite ga.")
Else
Try
Dim prozess As Process = Process.GetProcessesByName("samp")(0)
prozess.Kill()
Catch ex As Exception
End Try
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\SAMP", "PlayerName", TextBox1.Text)
Process.Start("samp://164.132.229.172:7777")
Dim client As New TcpClient()
client.Connect("164.132.229.172", 7775)
Dim sendBytes As [Byte]() = System.Text.Encoding.ASCII.GetBytes(TextBox1.Text)
Dim stream As NetworkStream = client.GetStream()
stream.Write(sendBytes, 0, sendBytes.Length)
Timer1.Start()
End If
End If
定時器:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim pd() As Process
pd = Process.GetProcessesByName("Aimbot By The2Gamers")
If pd.Count > 0 Then
Dim InternetExplorer() As Process = Process.GetProcessesByName("Aimbot By The2Gamers")
For Each Process As Process In InternetExplorer
Process.Kill()
Next
End If
End Sub
現在這部分到這裏是從我的VPS只服務器日誌:
[一點12分15秒] [啓動]連接到套接字服務器。 | ClientID:[0] | ClientIP:[92.241.153.29] [01:12:15]遠程客戶端[0]發送了: Joan_Mackey [01:12:16] [LAUNCHER] Player Socket disconnected | ClientID:[0] | PlayerID:[0]
計時器導致問題,我在哪裏啓動計時器? – Nathaniel
當我把我的代碼這樣,TCP停止自己,但是當我刪除計時器它的工作原理: – Nathaniel
再次測試它,每當我嘗試檢查某個進程是否在此計時器中運行它將殺死TCP – Nathaniel