Я создаю чат-комнату TCP, где несколько клиентов могут подключаться к серверу TCP.Я могу передавать сообщения, которые я отправляю всем клиентам, но, к сожалению, он отправляет каждое письмо по мере его ввода, и это портит формат.Мне нужно отправлять сообщения только при нажатии клавиши «Ввод».
Другая проблема, с которой я сталкиваюсь, заключается в том, что когда я спрашиваю имя пользователя, оно читает только первый символ строкиЯ печатаю как имя пользователя.Я попытался отладить его, но не смог понять проблему.Ниже приведены мои методы отправки и получения данных.
public void ReadData(object socket)
{
Socket s = (Socket)socket;
byte[] buffer = new byte[1024];
int k = 0;
while (true)
{
k = s.Receive(buffer);
// event that triggers the Message() method
SendGlobalMessage(s, buffer.GetString(k));
}
}
public void Message(Socket s, string msg)
{
string newMsg = String.Format("[{0}: {1}]", Connections[s], msg);
foreach (Socket st in Connections.Keys)
{
st.Send(newMsg.ToByteArray());
}
}
Пожалуйста, покажите мне примеры того, что я могу сделать по-другому, чтобы я мог понять твердое представление о том, что изменить.Спасибо.