ソケットを使用してコンソール チャット アプリケーションを作成しました。私が使用するサーバーとクライアントの両方でConsole.WriteLine("Enter message:")
. コンソールでクライアントまたはサーバーからメッセージを受信すると、次のように表示されます。
"Enter message:
Received message"
Console.WriteLine("Enter Message");
受信したすべてのメッセージの下に自動的に移動するにはどうすればよいですか?
私の現在のサーバーコード:
static void Main(string[] args)
{
var ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
Console.WriteLine("Enter a username:");
var sname = Console.ReadLine();
Console.Clear();
ClientSocket.Connect(new IPEndPoint(IPAddress.Loopback, 9000));
Console.WriteLine("Connection has been established...");
var RecieveThread = new Thread(new ParameterizedThreadStart(RecieveMessage));
RecieveThread.Start(ClientSocket);
while (true)
{
Console.Clear();
Console.WriteLine("Type message:");
var message = Console.ReadLine();
var custmessage = new CustomMessage() { From = sname, Message = message, TimeStamp = DateTime.Now };
Serialize serialize = new Serialize();
ClientSocket.Send(serialize.Serializer(custmessage));
}
}
static void RecieveMessage(object socketobject)
{
Serialize deserialize = new Serialize();
var client = (Socket)socketobject;
while (true)
{
byte[] buffer = new byte[1024];
var newmessage = new CustomMessage();
client.Receive(buffer);
object desbuffer = deserialize.Deserializer(buffer);
newmessage = (CustomMessage)desbuffer;
Console.WriteLine(newmessage.ToString());
}
}`