Здравствуйте!
Имеется сервер и приложение, оба написаны на языке С#, в приложении имеется кнопка, при нажатии на которую сообщение должно было отправиться на сервер и там отобразиться, но при проверке данного действия что-то пошло не так:
Вот код сервера:
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-запросы?