using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Threading;
public ref class ServerSocket
{
private:
static ManualResetEvent^ thread;
public:
// Constructor:
ServerSocket()
{
thread = gcnew ManualResetEvent(false);
try{
String^ hostname = Dns::GetHostName();
IPAddress^ serverIP = Dns::Resolve(hostname)->AddressList[0];
String^ Port = "80";
TcpListener^ tcpListener = gcnew TcpListener(ServerIP, Int32::Parse(Port));
tcpListener->Start(Int32::MaxValue);
Console::Write("Server started at " + serverIP->ToString() + ":" + Port;
while(true){
thread->Reset();
tcpListener->BeginAcceptSocket(gcnew AsyncCallback(&AcceptCallback), tcpListener);
thread->WaitOne();
}
}catch{
}
}
}