@a63826ndrew
Студент, новичок в Python

Как можно исправить ошибку?

Здравствуйте!
Имеется сервер и приложение, оба написаны на языке С#, в приложении имеется кнопка, при нажатии на которую сообщение должно было отправиться на сервер и там отобразиться, но при проверке данного действия что-то пошло не так:
601d82db0265d951260728.png
Вот код сервера:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using Microsoft.Data.Sqlite;

namespace Server
{
    class Program
    {
        const int port = 8888;
        static void Main(string[] args)
        {
            TcpListener server = null;
            try
            {
                IPAddress localAddr = IPAddress.Parse("127.0.0.1");
                server = new TcpListener(localAddr, port);

                // запуск слушателя
                server.Start();

                while (true)
                {
                    Console.WriteLine("Ожидание подключений... ");

                   
                    TcpClient client = server.AcceptTcpClient();
                    Console.WriteLine("Клиент подключился к серверу.");

                    while (client.Connected)
                    {
                        NetworkStream stream = client.GetStream();
                        byte[] cmd = new byte[256];
                        StringBuilder builder = new StringBuilder();
                        int bytes = 0;
                        do
                        {
                            bytes = stream.Read(cmd, 0, cmd.Length);
                            builder.Append(Encoding.Unicode.GetString(cmd, 0, bytes));
                        }
                        while (stream.DataAvailable);

                        string message = builder.ToString();
                        Console.WriteLine(message);


                        stream.Close();

                    }
                    client.Close();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}

А вот код, который выполняется при нажатии кнопки:
if (UserPassCheckField.Text == UserPassField.Text)
                try
                {
                    int Cash = Convert.ToInt32(CashAmount.Text);
                    NetworkStream stream = Client.GetStream();
                    string Message = $"INSERT INTO users (Login, Password, CardNumber, CashAmount) VALUES ('{UserLoginField.Text}','{UserPassField.Text}', '{CardNumber.Text}','{Cash}')";
                    byte[] command = System.Text.Encoding.UTF8.GetBytes(Message);
                    stream.Write(command, 0, command.Length);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    MessageBox.Show($"Пользователь {UserLoginField.Text} успешно добавлен!");
                    Hide();
                }

Что тут могло пойти не так и дать такой результат?
И еще хотел бы уточнить такой момент: как можно проще реализовать подключение к базе данных для моего сервера, чтобы туда отправлять sql-запросы?
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 2
freeExec
@freeExec
Участник OpenStreetMap
- Консоль не настроена на отображение UTF-16.
- Смотрите адаптер для вашей базы данных.
Ответ написан
Комментировать
Griboks
@Griboks Куратор тега C#
У вас разные кодировке на сервере, клиенте и эмуляторах терминалов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы