You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.2 KiB
50 lines
1.2 KiB
using System.Net;
|
|
using System.Net.Sockets;
|
|
using System.Text;
|
|
|
|
namespace Client;
|
|
|
|
internal class Client
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
|
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 20000);
|
|
|
|
socket.BeginConnect(endPoint, ConnectCompleted, socket);
|
|
|
|
while (true)
|
|
{
|
|
string str = Console.ReadLine() ?? string.Empty;
|
|
socket.Send(Encoding.UTF8.GetBytes(str));
|
|
}
|
|
}
|
|
|
|
private static void ConnectCompleted(IAsyncResult ar)
|
|
{
|
|
if (ar.AsyncState == null)
|
|
return;
|
|
|
|
Socket socket = (Socket)ar.AsyncState;
|
|
socket.EndConnect(ar);
|
|
|
|
string str = Console.ReadLine() ?? string.Empty;
|
|
byte[] buffer = Encoding.UTF8.GetBytes(str);
|
|
|
|
socket.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, SendCompleted, socket);
|
|
}
|
|
|
|
private static void SendCompleted(IAsyncResult ar)
|
|
{
|
|
if (ar.AsyncState == null)
|
|
return;
|
|
|
|
Socket socket = (Socket)ar.AsyncState;
|
|
socket.EndSend(ar);
|
|
|
|
string str = Console.ReadLine() ?? string.Empty;
|
|
byte[] buffer = Encoding.UTF8.GetBytes(str);
|
|
|
|
socket.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, SendCompleted, socket);
|
|
}
|
|
} |