This is my code:
//Code for host
case (GameState.PlayingAsHost):
{
session.Update();
while (session.LocalGamers[0].IsDataAvailable) //Recieve data
{
NetworkGamer sender;
PacketReader reader = new PacketReader();
session.LocalGamers[0].ReceiveData(reader, out sender);
guestPaddle.Position = reader.ReadVector2();
}
hostPaddle.Update(); //Update paddle position
var packetWriter = new PacketWriter(); //Send data
packetWriter.Write(new Vector2(hostPaddle.Position.X, 50));
session.LocalGamers[0].SendData(packetWriter,SendDataOptions.InOrder);
break;
}
//Guest Code
case (GameState.PlayingAsGuest):
{
session.Update();
while (session.LocalGamers[0].IsDataAvailable)//Recieve data
{
NetworkGamer sender;
PacketReader reader = new PacketReader();
session.LocalGamers[0].ReceiveData(reader, out sender);
hostPaddle.Position = reader.ReadVector2();
}
guestPaddle.Update(); //Update paddle position
var packetWriter = new PacketWriter(); //Send data
packetWriter.Write(new Vector2(guestPaddle.Position.X, 50));
session.LocalGamers[0].SendData(packetWriter, SendDataOptions.InOrder);
break;
}
This is going to be a pong multiplayer(therefore the paddle names). Before when the guest sended it's package before recieving,the code worked except for that when playing as guest the host's X position was set to the guest's X position. I was testing if changing so that the guest and host recieved data before sending it would solve the problem. By doing so the host gets the error message:"Unable to read beyond the end of the stream". How do I solve this problem?