I have this method in my client it sends to the model an integer whenever i click a button in my clientform.
public void SetInput(int index)
{
String go = index.ToString();
//String string = "YES";
MemoryStream memory = new MemoryStream();
BinaryWriter writer = new BinaryWriter(memory);
writer.Write(go);
// writer.Write(string);
serverSocket.Send(memory.GetBuffer());
}
This is the receive method. //go is the index from the first method.
public bool Receive(Socket player)
{
byte[] buffer = new byte[4096];
int length = player.Receive(buffer);
MemoryStream memory = new MemoryStream(buffer, 0, length);
BinaryReader reader = new BinaryReader(memory);
String go = reader.ReadString();
String answer = reader.ReadString(); //this doesnt work
if (IsTurnValid(Convert.ToInt32(go)) == true)
{
PlacePiece(GetActivePlayer(), Convert.ToInt32(go));
if (IsWon() == true)
{
try
{
..... etc
}
}
}
}
I've made another method that should send an string, although i get an eeror.
public void SetAnswer(string response)
{
String answer = response;
MemoryStream memory = new MemoryStream();
BinaryWriter writer = new BinaryWriter(memory);
writer.Write(answer);
serverSocket.Send(memory.GetBuffer());
}
How could i get both the integer(go) and string(answer) in one stream in the receive method.