Я пытаюсь подключить приложение C # .net к серверу, используя протокол XMLSocket, я могу сделать это с помощью следующего кода VB.net, но я не уверен, как это сделать в C #, так как я только сейчас изучаю это.
Public Sub connect(ByVal host As String, ByVal port As Integer)
Try
mobjClient = New TcpClient(host, port)
mobjClient.GetStream.BeginRead(marData, 0, 1024, AddressOf DoRead, Nothing)
DisplayText("Connected to " & host & " On port " & port)
Catch
MarkAsDisconnected("Connection error.")
End Try
End Sub
Public Sub Send(ByVal t As String, Optional ByVal disp As Boolean = True)
Try
Dim w As New IO.StreamWriter(mobjClient.GetStream)
w.Write(t & Chr(0))
w.Flush()
If disp = True Then
'DisplayText(t)
End If
Catch
DisplayText("Error Sending!")
End Try
End Sub
Private Sub DoRead(ByVal ar As IAsyncResult)
Dim intCount As Integer
Try
intCount = mobjClient.GetStream.EndRead(ar)
If intCount < 1 Then
'MarkAsDisconnected("Error reading Stream!")
DisplayText("Error reading stream.")
'Exit Sub
End If
BuildString(marData, 0, intCount)
mobjClient.GetStream.BeginRead(marData, 0, 1024, AddressOf DoRead, Nothing)
Catch e As Exception
MarkAsDisconnected("Reconnecting...")
connect("example.com", 7777)
LogIn("lograinbows", "inthesky", "DRESSLOGCASINO")
End Try
End Sub
''// This is important! Keep the Decoder and reuse it when you read this socket.
''// If you don't, a char split across two reads will break.
Dim decoder As Decoder = Encoding.UTF8.GetDecoder()
Private Sub BuildString(ByVal bytes() As Byte, ByVal offset As Integer, ByVal byteCount As Integer)
Try
''// Here's where the magic happens. The decoder converts bytes into chars.
''// But it remembers the final byte(s), and doesn't convert them,
''// until they form a complete char.
Dim chars(bytes.Length) As Char
Dim charCount As Integer = decoder.GetChars(bytes, offset, byteCount, chars, 0)
For i As Integer = 0 To charCount - 1
If chars(i) = Chr(0) Then ''// The fix for bullet #2
mobjText.Append(vbLf)
Dim params() As Object = {mobjText.ToString}
Me.Invoke(New DisplayInvoker(AddressOf Me.HandleXML), params)
''// You don't have to make a new StringBuilder, BTW -- just clear it.
mobjText.Length = 0
Else
mobjText.Append(chars(i))
End If
Next
Catch e As Exception
DisplayText("Error: ", e.Message)
End Try
End Sub