[转]深入探析c# Socket
2013-02-19 00:02
169 查看
最近浏览了几篇有关Socket发送消息的文章,发现大家对Socket Send方法理解有所偏差,现将自己在开发过程中对Socket的领悟写出来,以供大家参考。
(一)架构
基于TCP协议的Socket通信,架构类似于B/S架构,一个Socket通信服务器,多个Socket通信客户端。Socket通信服务器启动时,会建立一个侦听Socket,侦听Socket将侦听到的Socket连接传给接受Socket,然后由接受Socket完成接受、发送消息,当Socket存在异常时,断开连接。在实际开发项目中,往往要求Socket通信服务器能提供高效、稳定的服务,一般会用到以下技术:双工通信、完成端口、SAEA、池、多线程、异步等。特别是池,用的比较多,池一般包括一下几种:
1)Buffer池,用于集中管控Socket缓冲区,防止内存碎片。
2)SAEA池,用于集中管控Socket,重复利用Socket。
3)SQL池,用于分离网络服务层与数据访问层(SQL的执行效率远远低于网络层执行效率)。
4)线程池,用于从线程池中调用空闲线程执行业务逻辑,进一步提高网络层运行效率。
Program
using System;
using System.Net;
using System.Collections.Generic;
using System.IO;
class Program
{
staticvoid Main(string[] args)
{
IPEndPoint iep =new IPEndPoint(IPAddress.Parse("10.1.20.6"), 1333);
Server objServer =new Server(1000, 10);
objServer.Init();
objServer.Start(iep);
}
}
(一)架构
基于TCP协议的Socket通信,架构类似于B/S架构,一个Socket通信服务器,多个Socket通信客户端。Socket通信服务器启动时,会建立一个侦听Socket,侦听Socket将侦听到的Socket连接传给接受Socket,然后由接受Socket完成接受、发送消息,当Socket存在异常时,断开连接。在实际开发项目中,往往要求Socket通信服务器能提供高效、稳定的服务,一般会用到以下技术:双工通信、完成端口、SAEA、池、多线程、异步等。特别是池,用的比较多,池一般包括一下几种:
1)Buffer池,用于集中管控Socket缓冲区,防止内存碎片。
2)SAEA池,用于集中管控Socket,重复利用Socket。
3)SQL池,用于分离网络服务层与数据访问层(SQL的执行效率远远低于网络层执行效率)。
4)线程池,用于从线程池中调用空闲线程执行业务逻辑,进一步提高网络层运行效率。
Program
using System;
using System.Net;
using System.Collections.Generic;
using System.IO;
class Program
{
staticvoid Main(string[] args)
{
IPEndPoint iep =new IPEndPoint(IPAddress.Parse("10.1.20.6"), 1333);
Server objServer =new Server(1000, 10);
objServer.Init();
objServer.Start(iep);
}
}
相关文章推荐
- 深入探析c# Socket
- 【转】深入探析c# Socket
- 深入探析 Rational AppScan Standard Edition 新特性之 Glass Box 扫描
- 深入探析c# Socket
- 深入探析Java线程锁机制
- 深入探析 Rational AppScan Standard Edition 多步骤操作
- 深入探析 Data Source Control 之一
- [置顶] 深入探析Java线程锁机制
- 深入探析koa之异步回调处理篇
- TrueLove 项目感悟(三)深入探析 Data Source Control 之一
- 深入探析koa之中间件流程控制篇
- 深入探析c# Socket[转]
- 深入探析Java线程锁机制
- 深入探析koa之中间件流程控制篇
- 深入探析c# Socket
- 深入探析c# Socket
- 深入探析 Rational AppScan Standard Edition 新特性之 Glass Box 扫描
- prototype.js 让你更深入的了解javascript的面向对象特性
- 深入理解双指针 .
- JS闭包深入详解