<?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_Client</id>
		<title>Csharp/CSharp Tutorial/Network/Socket Client - История изменений</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_Client"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Network/Socket_Client&amp;action=history"/>
		<updated>2026-04-29T16:27:43Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/CSharp_Tutorial/Network/Socket_Client&amp;diff=6878&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_Client&amp;diff=6878&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_Client&amp;diff=6879&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_Client&amp;diff=6879&amp;oldid=prev"/>
				<updated>2010-05-26T12:20:42Z</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;==Echo Client without message encoding==&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.Sockets;&lt;br /&gt;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
  const int echoPort = 7;&lt;br /&gt;
  [STAThread]&lt;br /&gt;
  static void Main(string[] args)&lt;br /&gt;
  {&lt;br /&gt;
    using ( TcpClient tc = new TcpClient( &amp;quot;localhost&amp;quot;, echoPort ) )&lt;br /&gt;
    {&lt;br /&gt;
      NetworkStream ns = tc.GetStream();&lt;br /&gt;
      StreamWriter sw = new StreamWriter( ns );&lt;br /&gt;
      StreamReader sr = new StreamReader( ns );&lt;br /&gt;
      sw.WriteLine( &amp;quot;test message&amp;quot; );&lt;br /&gt;
      sw.Flush();&lt;br /&gt;
      System.Console.WriteLine( sr.ReadLine() );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Echo Client with UTF8 Encoding==&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;
  const int echoPort = 7;&lt;br /&gt;
  [STAThread]&lt;br /&gt;
  static void Main( string[] args )&lt;br /&gt;
  {&lt;br /&gt;
    Socket s = new Socket( AddressFamily.InterNetwork, &lt;br /&gt;
      SocketType.Stream, &lt;br /&gt;
      ProtocolType.Tcp );&lt;br /&gt;
    s.Connect( new IPEndPoint( IPAddress.Loopback, echoPort ) );&lt;br /&gt;
    UTF8Encoding enc = new UTF8Encoding();&lt;br /&gt;
    s.Send( enc.GetBytes( &amp;quot;test message&amp;quot; ) );&lt;br /&gt;
    Byte[] buff = new Byte[ 1024 ];&lt;br /&gt;
    s.Receive( buff );&lt;br /&gt;
    System.Console.WriteLine( enc.GetString( buff ) );&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GUI based Tcp Client==&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;
public class AsyncTcpClient : Form&lt;br /&gt;
{&lt;br /&gt;
   private TextBox newText;&lt;br /&gt;
   private TextBox conStatus;&lt;br /&gt;
   private ListBox results;&lt;br /&gt;
   private Socket client;&lt;br /&gt;
   private byte[] data = new byte[1024];&lt;br /&gt;
   private int size = 1024;&lt;br /&gt;
   public AsyncTcpClient()&lt;br /&gt;
   {&lt;br /&gt;
      Text = &amp;quot;Asynchronous TCP Client&amp;quot;;&lt;br /&gt;
      Size = new Size(400, 380);&lt;br /&gt;
      &lt;br /&gt;
      Label label1 = new Label();&lt;br /&gt;
      label1.Parent = this;&lt;br /&gt;
      label1.Text = &amp;quot;Enter text string:&amp;quot;;&lt;br /&gt;
      label1.AutoSize = true;&lt;br /&gt;
      label1.Location = new Point(10, 30);&lt;br /&gt;
      newText = new TextBox();&lt;br /&gt;
      newText.Parent = this;&lt;br /&gt;
      newText.Size = new Size(200, 2 * Font.Height);&lt;br /&gt;
      newText.Location = new Point(10, 55);&lt;br /&gt;
      results = new ListBox();&lt;br /&gt;
      results.Parent = this;&lt;br /&gt;
      results.Location = new Point(10, 85);&lt;br /&gt;
      results.Size = new Size(360, 18 * Font.Height);&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;Disconnected&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 sendit = new Button();&lt;br /&gt;
      sendit.Parent = this;&lt;br /&gt;
      sendit.Text = &amp;quot;Send&amp;quot;;&lt;br /&gt;
      sendit.Location = new Point(220,52);&lt;br /&gt;
      sendit.Size = new Size(5 * Font.Height, 2 * Font.Height);&lt;br /&gt;
      sendit.Click += new EventHandler(ButtonSendOnClick);&lt;br /&gt;
      Button connect = new Button();&lt;br /&gt;
      connect.Parent = this;&lt;br /&gt;
      connect.Text = &amp;quot;Connect&amp;quot;;&lt;br /&gt;
      connect.Location = new Point(295, 20);&lt;br /&gt;
      connect.Size = new Size(6 * Font.Height, 2 * Font.Height);&lt;br /&gt;
      connect.Click += new EventHandler(ButtonConnectOnClick);&lt;br /&gt;
      Button discon = new Button();&lt;br /&gt;
      discon.Parent = this;&lt;br /&gt;
      discon.Text = &amp;quot;Disconnect&amp;quot;;&lt;br /&gt;
      discon.Location = new Point(295,52);&lt;br /&gt;
      discon.Size = new Size(6 * Font.Height, 2 * Font.Height);&lt;br /&gt;
      discon.Click += new EventHandler(ButtonDisconOnClick);&lt;br /&gt;
   }&lt;br /&gt;
   void ButtonConnectOnClick(object obj, EventArgs ea)&lt;br /&gt;
   {&lt;br /&gt;
      conStatus.Text = &amp;quot;Connecting...&amp;quot;;&lt;br /&gt;
      Socket newsock = new Socket(AddressFamily.InterNetwork,&lt;br /&gt;
                            SocketType.Stream, ProtocolType.Tcp);&lt;br /&gt;
      IPEndPoint iep = new IPEndPoint(IPAddress.Parse(&amp;quot;127.0.0.1&amp;quot;), 9050);&lt;br /&gt;
      newsock.BeginConnect(iep, new AsyncCallback(Connected), newsock);&lt;br /&gt;
   }&lt;br /&gt;
   void ButtonSendOnClick(object obj, EventArgs ea)&lt;br /&gt;
   {&lt;br /&gt;
      byte[] message = Encoding.ASCII.GetBytes(newText.Text);&lt;br /&gt;
      newText.Clear();&lt;br /&gt;
      client.BeginSend(message, 0, message.Length, SocketFlags.None, new AsyncCallback(SendData), client);&lt;br /&gt;
   }&lt;br /&gt;
   void ButtonDisconOnClick(object obj, EventArgs ea)&lt;br /&gt;
   {&lt;br /&gt;
      client.Close();&lt;br /&gt;
      conStatus.Text = &amp;quot;Disconnected&amp;quot;;&lt;br /&gt;
   }&lt;br /&gt;
   void Connected(IAsyncResult iar)&lt;br /&gt;
   {&lt;br /&gt;
      client = (Socket)iar.AsyncState;&lt;br /&gt;
      try&lt;br /&gt;
      {&lt;br /&gt;
         client.EndConnect(iar);&lt;br /&gt;
         conStatus.Text = &amp;quot;Connected to: &amp;quot; + client.RemoteEndPoint.ToString();&lt;br /&gt;
         client.BeginReceive(data, 0, size, SocketFlags.None,&lt;br /&gt;
                       new AsyncCallback(ReceiveData), client);&lt;br /&gt;
      } catch (SocketException)&lt;br /&gt;
      {&lt;br /&gt;
         conStatus.Text = &amp;quot;Error connecting&amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
   }&lt;br /&gt;
   void ReceiveData(IAsyncResult iar)&lt;br /&gt;
   {&lt;br /&gt;
      Socket remote = (Socket)iar.AsyncState;&lt;br /&gt;
      int recv = remote.EndReceive(iar);&lt;br /&gt;
      string stringData = Encoding.ASCII.GetString(data, 0, recv);&lt;br /&gt;
      results.Items.Add(stringData);&lt;br /&gt;
   }&lt;br /&gt;
   void SendData(IAsyncResult iar)&lt;br /&gt;
   {&lt;br /&gt;
      Socket remote = (Socket)iar.AsyncState;&lt;br /&gt;
      int sent = remote.EndSend(iar);&lt;br /&gt;
      remote.BeginReceive(data, 0, size, SocketFlags.None,new AsyncCallback(ReceiveData), remote);&lt;br /&gt;
   }&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      Application.Run(new AsyncTcpClient());&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Send data using 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.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;
      IPAddress host = IPAddress.Parse(&amp;quot;192.168.1.1&amp;quot;);&lt;br /&gt;
      IPEndPoint hostep = new IPEndPoint(host, 8000);&lt;br /&gt;
      Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);&lt;br /&gt;
      try&lt;br /&gt;
      {&lt;br /&gt;
         sock.Connect(hostep);&lt;br /&gt;
      } catch (SocketException e) {&lt;br /&gt;
         Console.WriteLine(&amp;quot;Problem connecting to host&amp;quot;);&lt;br /&gt;
         Console.WriteLine(e.ToString());&lt;br /&gt;
         sock.Close();&lt;br /&gt;
         return;&lt;br /&gt;
      }&lt;br /&gt;
      try&lt;br /&gt;
      {&lt;br /&gt;
         sock.Send(Encoding.ASCII.GetBytes(&amp;quot;testing&amp;quot;));&lt;br /&gt;
      } catch (SocketException e) {&lt;br /&gt;
          Console.WriteLine(&amp;quot;Problem sending data&amp;quot;);&lt;br /&gt;
          Console.WriteLine( e.ToString());&lt;br /&gt;
          sock.Close();&lt;br /&gt;
          return;&lt;br /&gt;
      }&lt;br /&gt;
      sock.Close();&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Simple Tcp Client: receive data from 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;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      IPEndPoint ip = new IPEndPoint(IPAddress.Parse(&amp;quot;127.0.0.1&amp;quot;), 9999);&lt;br /&gt;
      Socket server = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);&lt;br /&gt;
      try&lt;br /&gt;
      {&lt;br /&gt;
         server.Connect(ip);&lt;br /&gt;
      } catch (SocketException e){&lt;br /&gt;
         Console.WriteLine(&amp;quot;Unable to connect to server.&amp;quot;);&lt;br /&gt;
         return;&lt;br /&gt;
      }&lt;br /&gt;
      byte[] data = new byte[1024];&lt;br /&gt;
      int receivedDataLength = server.Receive(data);&lt;br /&gt;
      string stringData = Encoding.ASCII.GetString(data, 0, receivedDataLength);&lt;br /&gt;
      Console.WriteLine(stringData);&lt;br /&gt;
      server.Shutdown(SocketShutdown.Both);&lt;br /&gt;
      server.Close();&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Simple Tcp Client: send data to the 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;
class MainClass&lt;br /&gt;
{&lt;br /&gt;
   public static void Main()&lt;br /&gt;
   {&lt;br /&gt;
      IPEndPoint ip = new IPEndPoint(IPAddress.Parse(&amp;quot;127.0.0.1&amp;quot;), 9999);&lt;br /&gt;
      Socket server = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);&lt;br /&gt;
      try&lt;br /&gt;
      {&lt;br /&gt;
         server.Connect(ip);&lt;br /&gt;
      } catch (SocketException e){&lt;br /&gt;
         Console.WriteLine(&amp;quot;Unable to connect to server.&amp;quot;);&lt;br /&gt;
         return;&lt;br /&gt;
      }&lt;br /&gt;
      Console.WriteLine(&amp;quot;Type &amp;quot;exit&amp;quot; to exit.&amp;quot;);&lt;br /&gt;
      while(true)&lt;br /&gt;
      {&lt;br /&gt;
         string input = Console.ReadLine();&lt;br /&gt;
         if (input == &amp;quot;exit&amp;quot;)&lt;br /&gt;
            break;&lt;br /&gt;
         server.Send(Encoding.ASCII.GetBytes(input));&lt;br /&gt;
         byte[] data = new byte[1024];&lt;br /&gt;
         int receivedDataLength = server.Receive(data);&lt;br /&gt;
         string stringData = Encoding.ASCII.GetString(data, 0, receivedDataLength);&lt;br /&gt;
         Console.WriteLine(stringData);&lt;br /&gt;
      }&lt;br /&gt;
      server.Shutdown(SocketShutdown.Both);&lt;br /&gt;
      server.Close();&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Simple Tcp server: send data to the 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;
      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;
==Socket connection==&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;
      IPAddress host = IPAddress.Parse(&amp;quot;192.168.1.1&amp;quot;);&lt;br /&gt;
      IPEndPoint hostep = new IPEndPoint(host, 8000);&lt;br /&gt;
      Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);&lt;br /&gt;
      try&lt;br /&gt;
      {&lt;br /&gt;
         sock.Connect(hostep);&lt;br /&gt;
      } catch (SocketException e) {&lt;br /&gt;
         Console.WriteLine(&amp;quot;Problem connecting to host&amp;quot;);&lt;br /&gt;
         Console.WriteLine(e.ToString());&lt;br /&gt;
         sock.Close();&lt;br /&gt;
         return;&lt;br /&gt;
      }&lt;br /&gt;
      sock.Close();&lt;br /&gt;
   }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>