C#通過Socket實現客戶端和服務器端通信的簡單例子

b5cw 9年前發布 | 4K 次閱讀 C#

C#通過Socket實現客戶端和服務器端通信的簡單例子
下面的代碼演示了如果創建一個用于在客戶端和服務端交換信息的代碼Socket Server 服務器端

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;

namespace ConsoleApplication1 { Class Program { static void Main (String[] args) { // 1. to create a socket Socket sListen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

         / / 2. Fill IP
         IPAddress IP = IPAddress.Parse ("127.0.0.1");
         IPEndPoint IPE = new IPEndPoint (IP, 4321);

         / / 3. binding
         sListen.Bind (IPE);

         / / 4. Monitoring
         sListen.Listen (2);

         / / 5. loop to accept client connection requests
         while (true)
         {
             Socket clientSocket;
             try
             {
                 clientSocket = sListen.Accept();
             }
             catch
             {
                 throw;
             }
             // send data to the client
             clientSocket.Send (Encoding.Unicode.GetBytes ("You there?!!!!"));
         }
     }

 }

}

</pre> socket client 客戶端

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;

namespace ConsoleApplication2 { Class Program { static void Main (String[] args) { // 1.create socket Socket S = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

         // 2. complete remote IP
         IPAddress IP = IPAddress.Parse ("127.0.0.1");
         IPEndPoint IPE = new IPEndPoint (IP, 4321);

         // 3. connect to the server
         Console.WriteLine("Start to connect to server ....");
         s.Connect (IPE);

         // 4. to receive data
         byte[] buffer = new byte[1024];
         s.Receive (buffer, buffer.Length, SocketFlags.None);
         var Msg = Encoding.Unicode.GetString (buffer);
         Console.WriteLine ("received message: (0)", Msg);

         Console.ReadKey ();
     }
 }

} </pre>

 本文由用戶 b5cw 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!