0

ソケットを使用してコンソール チャット アプリケーションを作成しました。私が使用するサーバーとクライアントの両方で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());
        }
    }`
4

1 に答える 1

1

を使用Console.CursorTopして、画面の最後の行に移動し、「メッセージを入力してください」を出力してから戻ることができます。

これは、コンソールの任意の時点でテキストを出力する方法を示すサンプルです。

于 2013-08-14T19:07:05.617 に答える