0

我遵循了一个教程,并制作了一个 Minecraft 服务器 pinger,但我想要不同行的所有信息,如下所示:

Server online!
The message of the day is ...
There are 0/2 players

我的代码

Imports Wrapped
Imports System.Net.Sockets

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles    Button1.Click
    Label3.Text = PingServer(TextBox1.Text, TextBox2.Text)

End Sub
Private Function PingServer(ByVal IP As String, ByVal port As Integer)
    Dim MySocket As New TcpClient(IP, port)
    Dim Socket As New Wrapped.Wrapped(MySocket.GetStream)
    Socket.writeByte(254)
    Socket.writeByte(1)
    If Socket.readByte() = 255 Then
        Dim mystring As String = Socket.readString()
        Dim mysplit() As String = mystring.Split(ChrW(CByte(0)))
        Return "The server is online"
        Return Environment.NewLine & "The message of the day is " & mysplit(3)
        Return Environment.NewLine & "There are" & mysplit(4) & "/" & mysplit(5) & "players"
    Else


        Return "Something went wrong! Please try again."



    End If
    Return ""

End Function
End Class
4

1 回答 1

1

Return 关键字将执行返回给调用者。所以它第一次返回时,它会返回它旁边的东西,而不是其他东西。在您的情况下,您只会得到The server is online.

你需要的是一个连接的字符串。有很多方法可以做到这一点,其中之一如下。

    Return "The server is online" & _
    Environment.NewLine & "The message of the day is " & mysplit(3) & _
    Environment.NewLine & "There are" & mysplit(4) & "/" & mysplit(5) & "players"

请注意,您不必将它们放在不同的行中,但更适合阅读代码。

于 2013-09-22T17:03:03.933 回答