//server
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace ConsoleApp63
{
internal class Program
{
static void Main(string[] args)
{
int port = 11000;
TcpServer server = new TcpServer(port);
Console.WriteLine("Press Enter to exit!");
Console.ReadLine();
server.server.Stop();
Console.WriteLine("Hello, World!");
}
}
public class TcpServer
{
public TcpListener server;
private const int BufferSize = 1024;
public TcpServer(int port)
{
server = new TcpListener(IPAddress.Any, port);
server.Start();
Console.WriteLine($"Server started on port {port}");
AcceptClients();
}
private void AcceptClients()
{
while (true)
{
TcpClient client = server.AcceptTcpClient();
Console.WriteLine("Connected to client!");
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[BufferSize];
int bytesRead;
try
{
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
{
string dataReceived = Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine($"Received from client:{dataReceived}");
byte[] msg = Encoding.UTF8.GetBytes($"Server:{dataReceived}");
stream.Write(msg, 0, msg.Length);
Console.WriteLine($"Sent to client:Server:{dataReceived}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error handling client:{ex.Message}");
}
finally
{
stream.Close();
client.Close();
Console.WriteLine("Client disconnected!");
}
}
}
private void HandleClientComm(object? state)
{
TcpClient client = (TcpClient)state;
if (client == null)
{
return;
}
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[BufferSize];
int bytesRead;
try
{
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
{
string dataReceived = Encoding.UTF8.GetString(buffer, 0, bytesRead);
Console.WriteLine($"Received from client:{dataReceived}");
byte[] msg = Encoding.UTF8.GetBytes($"Server:{dataReceived}");
stream.Write(msg, 0, msg.Length);
Console.WriteLine($"Sent to client:Server:{dataReceived}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error handling client:{ex.Message}");
}
finally
{
stream.Close();
client.Close();
Console.WriteLine("Client disconnected!");
}
}
}
}
//client
using System.Net.Sockets;
using System;
using System.Text;
using System.IO;
namespace ConsoleApp64
{
internal class Program
{
static void Main(string[] args)
{
TcpClient client = null;
NetworkStream stream;
try
{
client = new TcpClient("127.0.0.1", 11000);
while (true)
{
stream = client.GetStream();
string msg = $"Client {Guid.NewGuid().ToString()}";
byte[] data = Encoding.UTF8.GetBytes(msg);
stream.Write(data, 0, data.Length);
Console.WriteLine($"Sent:{msg}");
data = new byte[256];
int bytes = stream.Read(data, 0, data.Length);
string responseData = Encoding.ASCII.GetString(data, 0, bytes);
//stream.Close();
Thread.Sleep(1000);
}
}
catch (ArgumentNullException ex)
{
Console.WriteLine($"ArgumentNullException:{ex}");
}
catch (SocketException ex)
{
Console.WriteLine($"SocketException:{ex}");
}
finally
{
client?.Close();
}
Console.WriteLine("Hello, World!");
Console.Read();
}
}
}
![]()
![]()