Use background thread to deal with the Server socket : Socket Server « Network « C# / CSharp Tutorial






using System;
using System.Text;
using System.Threading;
using System.Net;
using System.Net.Sockets;

public class MainClass {
    private const int CONNECT_QUEUE_LENGTH = 4;

    static void ListenForRequests() {
        Socket listenSock = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );
        listenSock.Bind( new IPEndPoint(IPAddress.Any, 9999) );
        listenSock.Listen( CONNECT_QUEUE_LENGTH );

        while( true ) {
            Socket newConnection = listenSock.Accept();
            byte[] msg = Encoding.UTF8.GetBytes( "Hello!" );
            newConnection.BeginSend( msg,0, msg.Length, SocketFlags.None, null, null );
        }
    }

    static void Main() {
        Thread listener = new Thread(new ThreadStart(ListenForRequests) );
        listener.IsBackground = true;
        listener.Start();

        Console.WriteLine( "Press <enter> to quit" );
        Console.ReadLine();
    }
}








33.6.Socket Server
33.6.1.Listen for Socket Request in Thread
33.6.2.Use background thread to deal with the Server socket
33.6.3.Accepting a socket connection (simple file-server)
33.6.4.Simple Tcp server: receive data from a client
33.6.5.Tcp server: use StreamWriter and StreamReader to read and write to a client
33.6.6.GUI based Tcp Server
33.6.7.Tcp server based on Thread
33.6.8.ThreadPool based Tcp server