Echo server: Difference between revisions

m (→‎{{header|Java}}: formatting)
Line 333:
return EXIT_SUCCESS;
}</lang>
 
=={{header|C sharp|C#}}==
<lang csharp>
using System.Net.Sockets;
using System.Threading;
 
namespace ConsoleApplication1
{
class Program
{
static TcpListener listen;
static Thread serverthread;
 
static void Main(string[] args)
{
listen = new TcpListener(System.Net.IPAddress.Parse("127.0.0.1"), 12321);
serverthread = new Thread(new ThreadStart(DoListen));
serverthread.Start();
}
 
private static void DoListen()
{
// Listen
listen.Start();
Console.WriteLine("Server: Started server");
 
while (true)
{
Console.WriteLine("Server: Waiting...");
TcpClient client = listen.AcceptTcpClient();
Console.WriteLine("Server: Waited");
 
// New thread with client
Thread clientThread = new Thread(new ParameterizedThreadStart(DoClient));
clientThread.Start(client);
}
}
 
private static void DoClient(object client)
{
// Read data
TcpClient tClient = (TcpClient)client;
 
Console.WriteLine("Client (Thread: {0}): Connected!", Thread.CurrentThread.ManagedThreadId);
do
{
if (!tClient.Connected)
{
tClient.Close();
Thread.CurrentThread.Abort(); // Kill thread.
}
 
if (tClient.Available > 0)
{
// Resend
byte pByte = (byte)tClient.GetStream().ReadByte();
Console.WriteLine("Client (Thread: {0}): Data {1}", Thread.CurrentThread.ManagedThreadId, pByte);
tClient.GetStream().WriteByte(pByte);
}
 
// Pause
Thread.Sleep(100);
} while (true);
}
}
}
</lang>
 
=={{header|Clojure}}==
Anonymous user