Hello! I have small problem! I try make XNA multiplayer game using VB.NET, but my client socket not working on XNA but working VB.NET and C#
XNA code:
Errors when i run program:
XNA code:
PHP Code:
Imports System.Net.Sockets
Imports System.Net
Imports System.Text
Public Class Server
Private Shared _clientSocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Private Shared _PORT As Integer = 21
Public Shared Sub ConnectToServer()
RequestLoop()
[Exit]()
Dim attempts As Integer = 0
While Not _clientSocket.Connected
Try
attempts += 1
Console.WriteLine("Connection attempt " & attempts)
_clientSocket.Connect(IPAddress.Loopback, _PORT)
Catch generatedExceptionName As SocketException
Console.Clear()
End Try
End While
Console.Clear()
Console.WriteLine("Connected")
End Sub
Private Shared Sub RequestLoop()
Console.WriteLine("<Type ""exit"" to properly disconnect client>")
While True
SendRequest()
ReceiveResponse()
End While
End Sub
''' <summary>
''' Close socket and exit app
''' </summary>
Private Shared Sub [Exit]()
SendString("exit")
' Tell the server we re exiting
_clientSocket.Shutdown(SocketShutdown.Both)
_clientSocket.Close()
Environment.[Exit](0)
End Sub
Private Shared Sub SendRequest()
Console.Write("Send a request: ")
Dim request As String = Console.ReadLine()
SendString(request)
If request.ToLower() = "exit" Then
[Exit]()
End If
End Sub
''' <summary>
''' Sends a string to the server with ASCII encoding
''' </summary>
Public Shared Sub SendString(text As String)
Dim buffer As Byte() = Encoding.ASCII.GetBytes(text)
_clientSocket.Send(buffer, 0, buffer.Length, SocketFlags.None)
End Sub
Private Shared Sub ReceiveResponse()
Dim buffer = New Byte(2047) {}
Dim received As Integer = _clientSocket.Receive(buffer, SocketFlags.None)
If received = 0 Then
Return
End If
Dim data = New Byte(received - 1) {}
Array.Copy(buffer, data, received)
Dim text As String = Encoding.ASCII.GetString(data)
Console.WriteLine(text)
If text.ToLower() = "movedup" Then
MsgBox("test")
End If
End Sub
End Class
PHP Code:
System.ArgumentNullException was unhandled
HResult=-2147467261
Message=Merkkijonoviittausta ei ole määritetty merkkijonon esiintymään.
Parametrin nimi: s
ParamName=s
Source=mscorlib
StackTrace:
kohteessa System.Text.Encoding.GetBytes(String s)
kohteessa XNAgame.Server.SendString(String text) Server.vb:rivillä 61
kohteessa XNAgame.Server.SendRequest() Server.vb:rivillä 49
kohteessa XNAgame.Server.RequestLoop() Server.vb:rivillä 30
kohteessa XNAgame.Server.ConnectToServer() Server.vb:rivillä 8
kohteessa XNAgame.Game1..ctor() tiedostossa Game1.vb:rivillä 6
kohteessa XNAgame.Program.Main(String[] args) Program.vb:rivillä 8
InnerException:
PHP Code:
System.NullReferenceException was unhandled
HResult=-2147467261
Message=Objektin viittaukseksi ei voi määrittää objektiesiintymää.
Source=XNAgame
StackTrace:
kohteessa XNAgame.Server.SendRequest() Server.vb:rivillä 51
kohteessa XNAgame.Server.RequestLoop() Server.vb:rivillä 30
kohteessa XNAgame.Server.ConnectToServer() Server.vb:rivillä 8
kohteessa XNAgame.Game1..ctor() tiedostossa Game1.vb:rivillä 6
kohteessa XNAgame.Program.Main(String[] args) Program.vb:rivillä 8
InnerException:
PHP Code:
System.Net.Sockets.SocketException was unhandled
ErrorCode=10057
HResult=-2147467259
Message=Tietojen lähetys- tai vastaanottopyyntö hylättiin, koska vastake ei ole kytketty ja (lähetettäessä datagrammivastakkeeseen Sendto-kutsua käyttäen) osoitetta ei määritetty
NativeErrorCode=10057
Source=System
StackTrace:
kohteessa System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
kohteessa System.Net.Sockets.Socket.Receive(Byte[] buffer, SocketFlags socketFlags)
kohteessa XNAgame.Server.ReceiveResponse() Server.vb:rivillä 66
kohteessa XNAgame.Server.RequestLoop() Server.vb:rivillä 31
kohteessa XNAgame.Server.ConnectToServer() Server.vb:rivillä 8
kohteessa XNAgame.Game1..ctor() tiedostossa Game1.vb:rivillä 6
kohteessa XNAgame.Program.Main(String[] args) Program.vb:rivillä 8
InnerException: