博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# Socket系列1
阅读量:7174 次
发布时间:2019-06-29

本文共 2180 字,大约阅读时间需要 7 分钟。

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

 

转载于:https://www.cnblogs.com/PandaHome/p/9114149.html

你可能感兴趣的文章
结队-五子棋游戏-项目进度
查看>>
【TCP/IP指南(卷I)读书笔记】第一篇 TCP/IP概述与背景知识
查看>>
LeetCode OJ - Gray Code
查看>>
iOS开发小技巧--微博项目中的键盘工具条
查看>>
线程与进程
查看>>
数组中出现次数超过一半的数字
查看>>
学习Python第一天,命令很多跟Linux还有脚本语言相似。
查看>>
BEvent_客制化Event Agent通道(案例)(待整理)
查看>>
读书笔记 effective c++ Item 10 让赋值运算符返回指向*this的引用
查看>>
重中之重——》网站的外链建设如何进行?
查看>>
软件工程第三次作业——用户体验分析:以“南通大学教务学生管理系统”为例...
查看>>
TAE SDK 2.0.0工具 Update 7下载(12月13日更新)
查看>>
swift学习记录之代理
查看>>
hadoop分布式存储(1)-hadoop基础概念
查看>>
VMware虚拟机和主机(macOS)联网的解决方案
查看>>
nginx+awstats安装过程
查看>>
npm install --save 与 npm install --save-dev 的区别
查看>>
IE8 兼容CSS3 rgba属性
查看>>
Hadoop HA和Hbase HA
查看>>
获取div的高度
查看>>