<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2FNetwork%2FSocket_Server</id>
		<title>Csharp/CSharp Tutorial/Network/Socket Server - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FCSharp_Tutorial%2FNetwork%2FSocket_Server"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Network/Socket_Server&amp;action=history"/>
		<updated>2026-04-29T15:13:24Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Network/Socket_Server&amp;diff=6862&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Network/Socket_Server&amp;diff=6862&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Network/Socket_Server&amp;diff=6863&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Network/Socket_Server&amp;diff=6863&amp;oldid=prev"/>
				<updated>2010-05-26T12:20:37Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Accepting a socket connection (simple file-server)==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Collections.Specialized;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.IO.rupression;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.Net.Mail;&lt;br /&gt;
using System.Net.Sockets;&lt;br /&gt;
using System.Runtime.InteropServices;&lt;br /&gt;
using System.Text;&lt;br /&gt;
public class MainClass&lt;br /&gt;
{&lt;br /&gt;
    private static void HandleRequest(object state)&lt;br /&gt;
    {&lt;br /&gt;
        using (Socket client = (Socket)state)&lt;br /&gt;
        using (NetworkStream stream = new NetworkStream(client))&lt;br /&gt;
        using (StreamReader reader = new StreamReader(stream))&lt;br /&gt;
        using (StreamWriter writer = new StreamWriter(stream))&lt;br /&gt;
        {&lt;br /&gt;
            string fileName = reader.ReadLine();&lt;br /&gt;
            writer.Write(File.ReadAllText(fileName));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        using (Socket s = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp))&lt;br /&gt;
        {&lt;br /&gt;
            s.Bind(new IPEndPoint(IPAddress.Loopback, 9999));&lt;br /&gt;
            s.Listen(3);&lt;br /&gt;
            Socket client = s.Accept();&lt;br /&gt;
            ThreadPool.QueueUserWorkItem(HandleRequest, client);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GUI based Tcp Server==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;/*&lt;br /&gt;
Quote from &lt;br /&gt;
C# Network Programming&lt;br /&gt;
# Paperback: 656 pages&lt;br /&gt;
# Publisher: Sybex (November 26, 2002)&lt;br /&gt;
# Language: English&lt;br /&gt;
# ISBN-10: 0782141765&lt;br /&gt;
# ISBN-13: 978-0782141764&lt;br /&gt;
*/&lt;br /&gt;
using System;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.Net.Sockets;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
&lt;br /&gt;
public class AsyncTcpSrvr : Form&lt;br /&gt;
{&lt;br /&gt;
   private TextBox conStatus;&lt;br /&gt;
   private ListBox results;&lt;br /&gt;
   private byte[] data = new byte[1024];&lt;br /&gt;
   private int size = 1024;&lt;br /&gt;
   private Socket server;&lt;br /&gt;
&lt;br /&gt;
   public AsyncTcpSrvr()&lt;br /&gt;
   {&lt;br /&gt;
      Text = &amp;quot;Asynchronous TCP Server&amp;quot;;&lt;br /&gt;
      Size = new Size(400, 380);&lt;br /&gt;
      results = new ListBox();&lt;br /&gt;
      results.Parent = this;&lt;br /&gt;
      results.Location = new Point(10, 65);&lt;br /&gt;
      results.Size = new Size(350, 20 * Font.Height);&lt;br /&gt;
      Label label1 = new Label();&lt;br /&gt;
      label1.Parent = this;&lt;br /&gt;
      label1.Text = &amp;quot;Text received from client:&amp;quot;;&lt;br /&gt;
      label1.AutoSize = true;&lt;br /&gt;
      label1.Location = new Point(10, 45);&lt;br /&gt;
      Label label2 = new Label();&lt;br /&gt;
      label2.Parent = this;&lt;br /&gt;
      label2.Text = &amp;quot;Connection Status:&amp;quot;;&lt;br /&gt;
      label2.AutoSize = true;&lt;br /&gt;
      label2.Location = new Point(10, 330);&lt;br /&gt;
      conStatus = new TextBox();&lt;br /&gt;
      conStatus.Parent = this;&lt;br /&gt;
      conStatus.Text = &amp;quot;Waiting for client...&amp;quot;;&lt;br /&gt;
      conStatus.Size = new Size(200, 2 * Font.Height);&lt;br /&gt;
      conStatus.Location = new Point(110, 325);&lt;br /&gt;
      Button stopServer = new Button();&lt;br /&gt;
      stopServer.Parent = this;&lt;br /&gt;
      stopServer.Text = &amp;quot;Stop Server&amp;quot;;&lt;br /&gt;
      stopServer.Location = new Point(260,32);&lt;br /&gt;
      stopServer.Size = new Size(7 * Font.Height, 2 * Font.Height);&lt;br /&gt;
      stopServer.Click += new EventHandler(ButtonStopOnClick);&lt;br /&gt;
      server = new Socket(AddressFamily.InterNetwork,&lt;br /&gt;
                    SocketType.Stream, ProtocolType.Tcp);&lt;br /&gt;
      IPEndPoint iep = new IPEndPoint(IPAddress.Any, 9050);&lt;br /&gt;
      server.Bind(iep);&lt;br /&gt;
      server.Listen(5);&lt;br /&gt;
      server.BeginAccept(new AsyncCallback(AcceptConn), server);&lt;br /&gt;
   }&lt;br /&gt;
   void ButtonStopOnClick(object obj, EventArgs ea)&lt;br /&gt;
   {&lt;br /&gt;
      Close();&lt;br /&gt;
   }&lt;br /&gt;
   void AcceptConn(IAsyncResult iar)&lt;br /&gt;
   {&lt;br /&gt;
      Socket oldserver = (Socket)iar.AsyncState;&lt;br /&gt;
      Socket client = oldserver.EndAccept(iar);&lt;br /&gt;
      conStatus.Text = &amp;quot;Connected to: &amp;quot; + client.RemoteEndPoint.ToString();&lt;br /&gt;
      string stringData = &amp;quot;Welcome to my server&amp;quot;;&lt;br /&gt;
      byte[] message1 = Encoding.ASCII.GetBytes(stringData);&lt;br /&gt;
      client.BeginSend(message1, 0, message1.Length, SocketFlags.None,&lt;br /&gt;
                  new AsyncCallback(SendData), client);&lt;br /&gt;
   }&lt;br /&gt;
   void SendData(IAsyncResult iar)&lt;br /&gt;
   {&lt;br /&gt;
      Socket client = (Socket)iar.AsyncState;&lt;br /&gt;
      int sent = client.EndSend(iar);&lt;br /&gt;
      client.BeginReceive(data, 0, size, SocketFlags.None,&lt;br /&gt;
                  new AsyncCallback(ReceiveData), client);&lt;br /&gt;
   }&lt;br /&gt;
   void ReceiveData(IAsyncResult iar)&lt;br /&gt;
   {&lt;br /&gt;
      Socket client = (Socket)iar.AsyncState;&lt;br /&gt;
      int recv = client.EndReceive(iar);&lt;br /&gt;
      if (recv == 0)&lt;br /&gt;
      {&lt;br /&gt;
         client.Close();&lt;br /&gt;
         conStatus.Text = &amp;quot;Waiting for client...&amp;quot;;&lt;br /&gt;
         server.BeginAccept(new AsyncCallback(AcceptConn), server);&lt;br /&gt;
         return;&lt;br /&gt;
      }&lt;br /&gt;
      string receivedData = Encoding.ASCII.GetString(data, 0, recv);&lt;br /&gt;
      results.Items.Add(receivedData);&lt;br /&gt;
      byte[] message2 = Encoding.ASCII.GetBytes(receivedData);&lt;br /&gt;
      client.BeginSend(message2, 0, message2.Length, SocketFlags.None,&lt;br /&gt;
                   new AsyncCallback(SendData), client);&lt;br /&gt;
   }&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      Application.Run(new AsyncTcpSrvr());&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listen for Socket Request in Thread==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Threading;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.Net.Sockets;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    static void ListenForRequests() {&lt;br /&gt;
        int CONNECT_QUEUE_LENGTH = 4;&lt;br /&gt;
        &lt;br /&gt;
        Socket listenSock = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );&lt;br /&gt;
        listenSock.Bind( new IPEndPoint(IPAddress.Any,9999) );&lt;br /&gt;
        listenSock.Listen( CONNECT_QUEUE_LENGTH );&lt;br /&gt;
        while( true ) {&lt;br /&gt;
            using( Socket newConnection = listenSock.Accept() ) {&lt;br /&gt;
                // Send the data.&lt;br /&gt;
                byte[] msg = Encoding.UTF8.GetBytes( &amp;quot;Hello World!&amp;quot; );&lt;br /&gt;
                newConnection.Send( msg, SocketFlags.None );&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    static void Main() {&lt;br /&gt;
        // Start the listening thread.&lt;br /&gt;
        Thread listener = new Thread(new ThreadStart(ListenForRequests) );&lt;br /&gt;
        listener.IsBackground = true;&lt;br /&gt;
        listener.Start();&lt;br /&gt;
        Console.WriteLine( &amp;quot;Press &amp;lt;enter&amp;gt; to quit&amp;quot; );&lt;br /&gt;
        Console.ReadLine();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Simple Tcp server: receive data from a client==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.Net.Sockets;&lt;br /&gt;
using System.Text;&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      IPEndPoint ip = new IPEndPoint(IPAddress.Any,9999);&lt;br /&gt;
      Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);&lt;br /&gt;
      socket.Bind(ip);&lt;br /&gt;
      socket.Listen(10);&lt;br /&gt;
      Console.WriteLine(&amp;quot;Waiting for a client...&amp;quot;);&lt;br /&gt;
      Socket client = socket.Accept();&lt;br /&gt;
      IPEndPoint clientep =(IPEndPoint)client.RemoteEndPoint;&lt;br /&gt;
      Console.WriteLine(&amp;quot;Connected with {0} at port {1}&amp;quot;,clientep.Address, clientep.Port);&lt;br /&gt;
      &lt;br /&gt;
      string welcome = &amp;quot;Welcome&amp;quot;;&lt;br /&gt;
      byte[] data = new byte[1024];&lt;br /&gt;
      data = Encoding.ASCII.GetBytes(welcome);&lt;br /&gt;
      client.Send(data, data.Length,SocketFlags.None);&lt;br /&gt;
      while(true)&lt;br /&gt;
      {&lt;br /&gt;
         data = new byte[1024];&lt;br /&gt;
         int receivedDataLength = client.Receive(data);&lt;br /&gt;
         Console.WriteLine(Encoding.ASCII.GetString(data, 0, receivedDataLength));&lt;br /&gt;
         client.Send(data, receivedDataLength, SocketFlags.None);&lt;br /&gt;
      }&lt;br /&gt;
      Console.WriteLine(&amp;quot;Disconnected from {0}&amp;quot;,clientep.Address);&lt;br /&gt;
      client.Close();&lt;br /&gt;
      socket.Close();&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tcp server based on Thread==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.Net.Sockets;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Threading;&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      TcpListener client = new TcpListener(9050);&lt;br /&gt;
      client.Start();&lt;br /&gt;
      Console.WriteLine(&amp;quot;Waiting for clients...&amp;quot;);&lt;br /&gt;
      while(true)&lt;br /&gt;
      {&lt;br /&gt;
         while (!client.Pending())&lt;br /&gt;
         {&lt;br /&gt;
            Thread.Sleep(10000);&lt;br /&gt;
         }&lt;br /&gt;
         ConnectionThread newconnection = new ConnectionThread(client);&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
class ConnectionThread&lt;br /&gt;
{&lt;br /&gt;
   TcpListener threadListener;&lt;br /&gt;
   public ConnectionThread(TcpListener lis){&lt;br /&gt;
      threadListener = lis;&lt;br /&gt;
      Thread newthread = new Thread(new ThreadStart(HandleConnection));&lt;br /&gt;
      newthread.Start();&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   public void HandleConnection()&lt;br /&gt;
   {&lt;br /&gt;
      byte[] data = new byte[1024];&lt;br /&gt;
      TcpClient client = threadListener.AcceptTcpClient();&lt;br /&gt;
      NetworkStream ns = client.GetStream();&lt;br /&gt;
      string welcome = &amp;quot;Welcome&amp;quot;;&lt;br /&gt;
      data = Encoding.ASCII.GetBytes(welcome);&lt;br /&gt;
      ns.Write(data, 0, data.Length);&lt;br /&gt;
      while(true)&lt;br /&gt;
      {&lt;br /&gt;
         data = new byte[1024];&lt;br /&gt;
         int recv = ns.Read(data, 0, data.Length);&lt;br /&gt;
         if (recv == 0)&lt;br /&gt;
            break;&lt;br /&gt;
         ns.Write(data, 0, recv);&lt;br /&gt;
      }&lt;br /&gt;
      ns.Close();&lt;br /&gt;
      client.Close();&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tcp server: use StreamWriter and StreamReader to read and write to a client==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.Net.Sockets;&lt;br /&gt;
using System.Text;&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      string data;&lt;br /&gt;
      IPEndPoint ip = new IPEndPoint(IPAddress.Any, 9999);&lt;br /&gt;
      Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);&lt;br /&gt;
      socket.Bind(ip);&lt;br /&gt;
      socket.Listen(10);&lt;br /&gt;
      Socket client = socket.Accept();&lt;br /&gt;
      IPEndPoint newclient = (IPEndPoint)client.RemoteEndPoint;&lt;br /&gt;
      Console.WriteLine(&amp;quot;Connected with {0} at port {1}&amp;quot;,newclient.Address, newclient.Port);&lt;br /&gt;
      NetworkStream ns = new NetworkStream(client);&lt;br /&gt;
      StreamReader sr = new StreamReader(ns);&lt;br /&gt;
      StreamWriter sw = new StreamWriter(ns);&lt;br /&gt;
      string welcome = &amp;quot;Welcome&amp;quot;;&lt;br /&gt;
      sw.WriteLine(welcome);&lt;br /&gt;
      sw.Flush();&lt;br /&gt;
      while(true)&lt;br /&gt;
      {&lt;br /&gt;
         data = sr.ReadLine();&lt;br /&gt;
         Console.WriteLine(data);&lt;br /&gt;
         sw.WriteLine(data);&lt;br /&gt;
         sw.Flush();&lt;br /&gt;
      }&lt;br /&gt;
      Console.WriteLine(&amp;quot;Disconnected from {0}&amp;quot;, newclient.Address);&lt;br /&gt;
      sw.Close();&lt;br /&gt;
      sr.Close();&lt;br /&gt;
      ns.Close(); &lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ThreadPool based Tcp server==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.Net.Sockets;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Threading;&lt;br /&gt;
class MainClass &lt;br /&gt;
{&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      TcpListener client = new TcpListener(9050);&lt;br /&gt;
      client.Start();&lt;br /&gt;
      Console.WriteLine(&amp;quot;Waiting for clients...&amp;quot;);&lt;br /&gt;
      while(true)&lt;br /&gt;
      {&lt;br /&gt;
         while (!client.Pending())&lt;br /&gt;
         {&lt;br /&gt;
            Thread.Sleep(1000);&lt;br /&gt;
         }&lt;br /&gt;
         ConnectionThread newconnection = new ConnectionThread(client);&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
class ConnectionThread&lt;br /&gt;
{&lt;br /&gt;
   public TcpListener threadListener;&lt;br /&gt;
   public ConnectionThread(TcpListener lis){&lt;br /&gt;
     threadListener = lis;&lt;br /&gt;
     ThreadPool.QueueUserWorkItem(new WaitCallback(HandleConnection));&lt;br /&gt;
   }&lt;br /&gt;
   &lt;br /&gt;
   public void HandleConnection(object state)&lt;br /&gt;
   {&lt;br /&gt;
      int recv;&lt;br /&gt;
      byte[] data = new byte[1024];&lt;br /&gt;
      TcpClient client = threadListener.AcceptTcpClient();&lt;br /&gt;
      NetworkStream ns = client.GetStream();&lt;br /&gt;
      string welcome = &amp;quot;Welcome&amp;quot;;&lt;br /&gt;
      data = Encoding.ASCII.GetBytes(welcome);&lt;br /&gt;
      ns.Write(data, 0, data.Length);&lt;br /&gt;
      while(true)&lt;br /&gt;
      {&lt;br /&gt;
         data = new byte[1024];&lt;br /&gt;
         recv = ns.Read(data, 0, data.Length);&lt;br /&gt;
         ns.Write(data, 0, recv);&lt;br /&gt;
      }&lt;br /&gt;
      ns.Close();&lt;br /&gt;
      client.Close();&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Use background thread to deal with the Server socket==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;using System;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Threading;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.Net.Sockets;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    private const int CONNECT_QUEUE_LENGTH = 4;&lt;br /&gt;
    static void ListenForRequests() {&lt;br /&gt;
        Socket listenSock = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );&lt;br /&gt;
        listenSock.Bind( new IPEndPoint(IPAddress.Any, 9999) );&lt;br /&gt;
        listenSock.Listen( CONNECT_QUEUE_LENGTH );&lt;br /&gt;
        while( true ) {&lt;br /&gt;
            Socket newConnection = listenSock.Accept();&lt;br /&gt;
            byte[] msg = Encoding.UTF8.GetBytes( &amp;quot;Hello!&amp;quot; );&lt;br /&gt;
            newConnection.BeginSend( msg,0, msg.Length, SocketFlags.None, null, null );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    static void Main() {&lt;br /&gt;
        Thread listener = new Thread(new ThreadStart(ListenForRequests) );&lt;br /&gt;
        listener.IsBackground = true;&lt;br /&gt;
        listener.Start();&lt;br /&gt;
        Console.WriteLine( &amp;quot;Press &amp;lt;enter&amp;gt; to quit&amp;quot; );&lt;br /&gt;
        Console.ReadLine();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>