All pastes #964000 Raw Edit

Unnamed

public text v1 · immutable
#964000 ·published 2008-03-30 23:30 UTC
rendered paste body
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;


public class server
{
    public static void Main()
    {
        startup();
    }

    public static void startup()
    {
        string data;
        IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 1337);

        Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        
        newsock.Bind(ipep);
        newsock.Listen(10);
        Console.WriteLine("Waiting for a client...");

        Socket client = newsock.Accept();

        NetworkStream networkstream = new NetworkStream(client);
        StreamReader recive = new StreamReader(networkstream);
        StreamWriter send = new StreamWriter(networkstream);

        IPEndPoint newclient = (IPEndPoint)client.RemoteEndPoint;
        Console.WriteLine("Connected with {0} at port {1}", newclient.Address, newclient.Port);
        send.WriteLine("connection accepted");
        send.Flush();
       
        while(client.Connected)
        {
            try
            {
                data = recive.ReadLine();
            }
            catch (IOException)
            {
                break;
            }

            if (data == "test")
            {
                send.WriteLine("test");
                send.Flush();
            }
            else if (data == "shutdown")
            {
                send.WriteLine("server is shutting down");
                send.Flush();
                break;
            }
            else 
            {     
                if (!client.Connected)   // this one doesnt work tho :/
                {
                    break;
                }
                else
                {
                    send.WriteLine("that command doesnt exist");
                    send.Flush();
                }
            }
        }
        Console.WriteLine("Disconnected");
        send.Close();
        recive.Close();
        networkstream.Close();
    }
}