Hallo Community,
Bei meinen 2D Shooter(MonoGame) verwende ich meine Netzwerk Lib zum senden/empfangen von Strings/vectoren etc
Nach einiger Zeit trennt die Verbindung beim Server/Client und mir wird ein Fehler am Kopf geworden(IOException Verbindung bereits getrennt blablabla) bei
StringPacket incomingPacket = new StringPacket();
incomingPacket.TransformFromString(nreader.ReadLine());
if (incomingPacket.getName() == "SPAWN")
{
string playerName = incomingPacket.ReadString("Username");
MPPlayer mp = new MPPlayer(playerName, this);
mpplayers.Add(mp);
}
if (incomingPacket.getName() == "SPAWN_BULLET_CL")
{
Vector2D SDIR = incomingPacket.ReadVector2D("direction");
Vector2D SPOS = incomingPacket.ReadVector2D("position");
Vector2 dir = new Vector2((float)SDIR.X, (float)SDIR.Y);
Vector2 pos = new Vector2((float)SPOS.X, (float)SPOS.Y);
Bullet bu = new Bullet((float)incomingPacket.ReadDouble("force"), dir, incomingPacket.ReadString("name"), pos, this, (float)incomingPacket.ReadDouble("rotation"));
spawnBulletClientside(bu);
}
Kurze Erklärung von StringPacket
Dictionary<string,object> wird serialisiert und als ByteArray als String(base64) konvertiert bzw umgekehrt.
Funktioniert perfekt aber irgendwie bugt da was beim TcpClient/TcpListener rum bzw StreamReader/StreamWriter.
Mfg Pferdefleisch
Bei meinen 2D Shooter(MonoGame) verwende ich meine Netzwerk Lib zum senden/empfangen von Strings/vectoren etc
Nach einiger Zeit trennt die Verbindung beim Server/Client und mir wird ein Fehler am Kopf geworden(IOException Verbindung bereits getrennt blablabla) bei
StringPacket incomingPacket = new StringPacket();
incomingPacket.TransformFromString(nreader.ReadLine());
if (incomingPacket.getName() == "SPAWN")
{
string playerName = incomingPacket.ReadString("Username");
MPPlayer mp = new MPPlayer(playerName, this);
mpplayers.Add(mp);
}
if (incomingPacket.getName() == "SPAWN_BULLET_CL")
{
Vector2D SDIR = incomingPacket.ReadVector2D("direction");
Vector2D SPOS = incomingPacket.ReadVector2D("position");
Vector2 dir = new Vector2((float)SDIR.X, (float)SDIR.Y);
Vector2 pos = new Vector2((float)SPOS.X, (float)SPOS.Y);
Bullet bu = new Bullet((float)incomingPacket.ReadDouble("force"), dir, incomingPacket.ReadString("name"), pos, this, (float)incomingPacket.ReadDouble("rotation"));
spawnBulletClientside(bu);
}
Kurze Erklärung von StringPacket
Dictionary<string,object> wird serialisiert und als ByteArray als String(base64) konvertiert bzw umgekehrt.
Funktioniert perfekt aber irgendwie bugt da was beim TcpClient/TcpListener rum bzw StreamReader/StreamWriter.
Mfg Pferdefleisch