Accepting a socket connection (simple file-server) : Socket Server « Network « C# / CSharp Tutorial






using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.IO;
using System.IO.Compression;
using System.Net;
using System.Net.Mail;
using System.Net.Sockets;
using System.Runtime.InteropServices;
using System.Text;

public class MainClass
{
    private static void HandleRequest(object state)
    {
        using (Socket client = (Socket)state)
        using (NetworkStream stream = new NetworkStream(client))
        using (StreamReader reader = new StreamReader(stream))
        using (StreamWriter writer = new StreamWriter(stream))
        {
            string fileName = reader.ReadLine();
            writer.Write(File.ReadAllText(fileName));
        }
    }
    public static void Main()
    {
        using (Socket s = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp))
        {
            s.Bind(new IPEndPoint(IPAddress.Loopback, 9999));
            s.Listen(3);

            Socket client = s.Accept();
            ThreadPool.QueueUserWorkItem(HandleRequest, client);
        }
    }
}








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