1. 程式人生 > >C# Socket系列1

C# Socket系列1

col write play tco lba point bind rec enc

最近開始學習C#的Socket 記錄一下。

最簡單的服務端

技術分享圖片
 1   class Program
 2     {
 3         /*
 4          1、實例化Socket對象
 5          2、綁定端口和Ip(Bind)
 6          3、接聽客戶端連接(Listen)
 7          4、調用Accept取得客戶端Socket
 8          5、Send 和 Receive 收發數據
 9          6、Close關閉Socket       
10              */
11         static
void Main(string[] args) 12 { 13 Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 14 IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888); 15 server.Bind(endPoint); 16 server.Listen(10
); 17 server.BeginAccept(new AsyncCallback(AccepCallback), server); 18 Console.ReadKey(); 19 20 } 21 22 private static void AccepCallback(IAsyncResult ar) 23 { 24 Socket server = (Socket)ar.AsyncState; 25 Socket client = server.EndAccept(ar);
26 Console.WriteLine("收到{0}連接", client.RemoteEndPoint.ToString()); 27 byte[] data = Encoding.UTF8.GetBytes("客戶端連接成功"); 28 int len = data.Length; 29 client.Send(BitConverter.GetBytes(len)); 30 client.Send(data); 31 server.BeginAccept(new AsyncCallback(AccepCallback), server); 32 33 } 34 }
View Code

最簡單的客戶端

技術分享圖片
 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 6             try
 7             {
 8                 client.Connect("127.0.0.1", 8888);
 9                 Console.WriteLine("連接成功");
10                 byte[] buffer = new byte[4];
11                 client.Receive(buffer);
12                 int len = BitConverter.ToInt32(buffer, 0);
13                 buffer = new byte[len];
14                 client.Receive(buffer);
15                 string msg = Encoding.UTF8.GetString(buffer);
16                 Console.WriteLine(msg);
17             }
18             catch (Exception e)
19             {
20 
21                 Console.WriteLine(e.Message);
22             }
23             Console.ReadKey();
24         }
25     }
View Code

C# Socket系列1