C#
C# winforms Как выполнять какие либо действия на client с помощью сокетов ?
C# winforms Как выполнять какие либо действия на client с помощью сокетов ?
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Windows.Forms;
public partial class ClientForm : Form
{
private Socket _clientSocket;
private byte[] _buffer;
public ClientForm()
{
InitializeComponent();
}
private void ConnectToServerButton_Click(object sender, EventArgs e)
{
// Connect to the server
_clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(IPAddressTextBox.Text), int.Parse(PortTextBox.Text));
_clientSocket.BeginConnect(endPoint, ConnectCallback, null);
}
private void ConnectCallback(IAsyncResult ar)
{
try
{
_clientSocket.EndConnect(ar);
ConnectToServerButton.Enabled = false;
SendMessageButton.Enabled = true;
_buffer = new byte[1024];
_clientSocket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, ReceiveCallback, null);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void ReceiveCallback(IAsyncResult ar)
{
try
{
int received = _clientSocket.EndReceive(ar);
if (received == 0)
{
throw new Exception("Connection closed");
}
string message = Encoding.UTF8.GetString(_buffer, 0, received);
ChatTextBox.AppendText(message + Environment.NewLine);
_buffer = new byte[1024];
_clientSocket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, ReceiveCallback, null);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void SendMessageButton_Click(object sender, EventArgs e)
{
try
{
byte[] data = Encoding.UTF8.GetBytes(MessageTextBox.Text);
_clientSocket.BeginSend(data, 0, data.Length, SocketFlags.None, SendCallback, null);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void SendCallback(IAsyncResult ar)
{
try
{
_clientSocket.EndSend(ar);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
C# Winforms используется для создания графического интерфейса пользователя. Вы можете использовать сокеты, чтобы осуществлять взаимодействие между клиентом и сервером.
Чтобы выполнить действия на стороне клиента с помощью сокетов, вам нужно:
Создать экземпляр класса Socket для клиентской части
Подключиться к серверу с помощью метода Connect
Отправлять данные на сервер с помощью метода Send
Получать данные от сервера с помощью метода Receive
Вы можете найти много примеров кода, демонстрирующих, как использовать сокеты в C# Winforms, в сети.
Чтобы выполнить действия на стороне клиента с помощью сокетов, вам нужно:
Создать экземпляр класса Socket для клиентской части
Подключиться к серверу с помощью метода Connect
Отправлять данные на сервер с помощью метода Send
Получать данные от сервера с помощью метода Receive
Вы можете найти много примеров кода, демонстрирующих, как использовать сокеты в C# Winforms, в сети.
Похожие вопросы
- Как исправить ошибку ссылка на объект c# winforms
- Счетчик нажатия кнопки Enter. Написал программу, но не работает. Winforms C#
- Нужна помощь с задачей C#
- C#: С помощью каких библиотек/модулей можно узнать температуру ЦП, ГПУ, частоту и тд...
- Нужно, чтобы когда закрывалось консольное приложение на C# происходило какое-то действие!
- Стоит ли дальше учить C#?
- Нужна помощь с языком C#
- Задача массивы c# , прошу помощи...
- (c#) Нужна помощь в работе со строками. (лучше если будет не само решение, а объяснение, спасибо)
- Помогите решить задачу C#! С помощью switch case.