码迷,mamicode.com
首页 > Windows程序 > 详细

C# Socket系列1

时间:2018-05-31 00:29:10      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:write   remote   ipad   async   syn   gif   epc   ram   toc   

最近开始学习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

标签:write   remote   ipad   async   syn   gif   epc   ram   toc   

原文地址:https://www.cnblogs.com/PandaHome/p/9114149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!