文章分类 - Scoket
摘要:在网上很多人讨论.NET异步SOCKET通信的问题。很多人都有误解,都以为非要用系统底层的IOCP,实际上没那么麻烦,要相信.NET封装了所有系统底层操作。实际上.NET的IOCP微软早有例子,下面是该例子:class Server{ private int m_numConnections; //...
阅读全文
摘要:.NET平台下几种SOCKET模型的简要性能供参考http://www.cnblogs.com/asilas/archive/2006/01/05/311309.html异步Sockethttp://www.cnblogs.com/idior/articles/147648.html(Sonic.N...
阅读全文
摘要:这个内容在cnblogs中也讨论过很多次了,这两天大概看了一些资料,看到一些简单的性能指标拿出来和大家讨论一下。Socket + Threads/ThreadPool大概性能:小于1500个连接实现:Accept一个Socket,就交给一个线程去管理,比较笨,但也比较有效,因为是同步方式,控制起来很...
阅读全文
摘要:无论什么平台,编写支持高并发性的网络服务器,瓶颈往往出在I/O上,目前最高效的是采用Asynchronous I/O模型,Linux平台提供了epoll,Windows平台提供了I/O Completion Port(IO完成端口,即IOCP)。Windows 自winsock2开始就提供了IOCP...
阅读全文
摘要:前言 NAT技术的出现从某种意义上解决了IPv4的32位地址不足的问题,它同时也对外隐藏了其内部网 络的结构。NAT设备(NAT,一般也被称为中间件)把内部网络跟外部网络隔离开来,并且可以让内部的主机可以使用一个独立的IP地址,并且可以为每个连 接动态地翻译这些地址。此外,当内部主机跟外部主机通信时,NAT设备必须为它分配一个唯一的端口号并连接到同样的地址和端口(目标主机)。NAT的另一 个特性是它只允许从内部发起的连接的请求,它拒绝了所有不是由内部发起的来到外部的连接,因为它根本不知道要把这个连接转发给内部的哪台主机。 P2P网络已经日益流行。尽管p2p文件共享软件引发了很多争夺站,比如Ne
阅读全文
摘要:引言:在我们的平常工作中,邮件的发送和接收应该是我们经常要使用到的功能的。因此知道电子邮件的应用程序的原理也是非常有必要的,在这一个专题中将介绍电子邮件应用程序的原理、电子邮件应用程序中涉及的协议和实现一个简答的电子邮件收发器程序。一、邮件应用程序基本知识1.1 电子邮件原理及相关协议 说到电子邮件的原理,其实和我们现实生活中寄邮件和寄包裹是一样的原理的。就让我们先回顾下现实生活中寄邮件的流程吧——首先,我们先写好信, 信封上面写好收信人的地址,写信人的地址,然后把信放到寄信箱中,然后邮局的人会某个时候去这个信箱中的信取出来,然后邮局的人根据信封上写的收信人地址 进行转发到当地的邮局,当地邮.
阅读全文
摘要:引言:前面专题中介绍了UDP、TCP和P2P编程,并且通过一些小的示例来让大家更好的理解它们的工作原理以及怎样.Net类库去实现它们的。为了让大家更好的理解我们平常中常见的软件QQ的工作原理,所以在本专题中将利用前面专题介绍的知识来实现一个类似QQ的聊天程序。一、即时通信系统在我们的生活中经常使用即时通信的软件,我们经常接触到的有:QQ、阿里旺旺、MSN等等。这些都是属于即时通信(Instant Messenger,IM)软件,IM是指所有能够即时发送和接收互联网消息的软件。在前面专题P2P编程中介绍过P2P系统分两种类型——单纯型P2P和混合型P2P(QQ就是属于混合型的应用),混合型P2P
阅读全文
摘要:引言:前面的介绍专题中有朋友向我留言说介绍下关于P2P相关的内容的,首先本人对于C#网络编程也不是什么大牛,因为能力的关系,也只能把自己的一些学习过程和自己的一些学习过程中的理解和大家分享下的,下面就进入正题——P2P(Peer to Peer)编程一、P2P的介绍首先,现在大家熟知的BT、电驴、迅雷、QQ、MSN和PPlive等都是基于P2P方式实现的软件,并且对等联网(Peer to Peer,P2P)将是互联网的发展方向,因此对于P2P技术的了解显得非常的重要,下面就来介绍下P2P架构:在P2P技术之前,我们所有的网络应用都采用C/S或者B/S架构来实现的,然而在之前C/S架构的应用程序
阅读全文
摘要:上次因为时间的关系,所以把上一个专题遗留下的一个问题在本专题中和大家分享下,本专题主要介绍下如何实现UDP广播的程序,下面就直接介绍实现过程和代码以及运行的结果。一、程序实现UDP广播程序的实现代码:using System;using System.Net;using System.Net.Sockets;using System.Text;using System.Threading;using System.Windows.Forms;namespace UDPBroadcast{ /// /// 在界面上,用户可以设置本地进程的IP地址和端口号,并将地址加入某个组播组; ...
阅读全文
摘要:引用:前一个专题简单介绍了TCP编程的一些知识,UDP与TCP地位相当的另一个传输层协议,它也是当下流行的很多主流网络应用(例如QQ、MSN和 Skype等一些即时通信软件传输层都是应用UDP协议的)底层的传输基础,所以在本专题中就简单介绍下UDP的工作原理和UDP编程的只是,希望可以对 刚接触网络编程的朋友起到入门的作用。一、UDP介绍UDP和TCP都是构建在IP层之上传输层的协议,但UDP是一种简单、面向数据报(Sock_Dgram)的无连接协议,提供的是不一定可靠的传输服务。然而TCP是一种面向连接、可靠的,面向字节流(Sock_Stream)的 传输协议,对于“无连接”是指在正式通信前
阅读全文
摘要:前言前面专题的例子都是基于应用层上的HTTP协议的介绍, 现在本专题来介绍下传输层协议——TCP协议,主要介绍下TCP协议的工作过程和基于TCP协议的一个简单的通信程序,下面就开始本专题的正文了。一、TCP的工作过程首先TCP是一种面向连接的,可靠的,基于字节流的传输层通信协议。TCP的工作过程可以分为三个阶段:一、连接的建立; 二、传输数据; 三、断开连接,下面就对这三个过程分别介绍下:1.1 连接的建立TCP的连接建立就像打电话一样, 我们打电话时,拨一个号码的号码并不是立即就可以接通的,期间会有一个“嘟 嘟”的呼叫过程, 这就好比是TCP协议的连接的建立阶段。当我们用TCP编写的程序,必
阅读全文
摘要:对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是属于TCP/IP协议族中的一种。 这里有一张图,表明了.
阅读全文
摘要:一、网上常用方法1、当Socket.Conneted == false时,调用如下函数进行判断 点击(此处)折叠或打开 /// /// 当socket.connected为false时,进一步确定下当前连接状态 /// /// private bool IsSocketConnected() { #region remarks /*************************************************************************************...
阅读全文
摘要:1、经典错误之 无法访问已释放的对象。 对象名:“System.Net.Sockets.Socket”(1)、问题现场 (2)、问题叙述程序中的某个地方调用到了socket.close后,这个socket还被调用,就出爆出上面错误!(3)、解决方案使用下面一句:if (stsend != null && stsend.Connected)stsend != null :这一句在socket.close之后,会无效的,因为关闭socket连接时已经将其所有连接的资源都释放了;故要与Connected全用;stsend.Connected:获取一个值,该值指示 Socket上次操作
阅读全文
摘要:下行带宽 (速度)和上行带宽(速度),理论速度和实际速度概念及解释作者:admin时间:2011-3-22 23:19:35浏览:14321 下行带宽(速度)和上传带宽(速度) 大家知道,上网包括从网络获取数据和向网络传输据这两个方向的速度,在很多时候这两个方向的带宽或者速度是不一样。这在专业术语中称之为下行带宽 (速度)和上行带宽(速度),我们可以理解为接收速度和上传速度。在很多环境,上行速度和下行速度是不一样的,一般来说在这些不对称的场合,下行速度多是 大于上行速度。 记住哦,上网这个概念一直在误导大家,以为数据是往上走。其实不是的,你上网找东西就是数据下网往你电脑走,除非你要把什么东西―
阅读全文
摘要:Socket類別同時支援多種形式網路程式開發,許多網路通訊相關的類別都是以它為基礎衍伸而來,像之前所提的TcpClient、TcpListener與UdpClient等等。實際上個人也最喜歡用這個類別來開發網路通訊程式,雖然用Socket類別寫起來比較囉唆一點。 首先要講的當然是常用的建構函式,Socket 建構函式 (AddressFamily, SocketType, ProtocolType),這個建構函式傳入三個參數藉以建立一個Socket類別的執行個體。參數一 AddressFamily:指定 Socket 將用來解析位址的定址配置。例如使用InterNetwork時,當 Socke
阅读全文
摘要:這一篇來談到如何使用使用TcpClient與TcpListener類別來實作TCP的通訊程式,顧名思義TcpClient當然是作為Clinet端使用;而TcpListener則是作為Server端使用。 照例先來分類一下TcpClient的建構函式:1自動給本機Port號TcpClient() TcpClient(AddressFamily)2依IPEndPoint決定本機Port號TcpClient(IPEndPoint)3指定遠端主機Hostname與Port號TcpClient(String, Int32) 至於TcpListener的建構函式則有三種:1指定本機Port號﹝這個方法在
阅读全文
摘要:在 .NET有兩種類別可用於建立UDP Socket,一是Socket類別,第二個則是由Socket類別所衍生的UdpClient類別。因為同步比非同步簡單、衍生類別比基底類別簡單、UDP比TCP簡單,所以我把同步的UdpClient當成Socket程式入門的首篇實作文章。 先來談談UDP的特性好了,以下是UDP與TCP一份簡單的比較表:UDPTCPSocket Type﹝註﹞DgramStream可靠性較低較高速度較快較慢需連結後通訊NoYes點對點通訊YesYes多點通訊YesNo廣播通訊YesNo﹝註﹞關於Socket Type可以參考MSDN文件庫[SocketType 列舉型別] 不
阅读全文
摘要:IPEndPoint類別其實是個小東西,就做一件很簡單的事情,把IP位址和通訊埠封裝成一個物件,雖然它是如此簡單,不過在某些狀態下會常用到這個類別,所以覺得有需要特別介紹一下。 它只有兩種建構函式:(1)IPEndPoint (Int64, Int32) :其中第一個參數代表IP位址的Int64值,第二個參數為通訊埠號 範例: Dim i As Long i = 192 + 168 * 256 + 1 * 256 ^ 2 + 2 * 256 ^ 3 Dim j As Integer j = 9999 Dim myIPEndPoint As New IPEndPoint(i, j) TextB.
阅读全文
摘要:第一個要瞭解的是IPAddress類別: 我們使用Socket程式大概最主要都是在撰寫TCP或UDP的通訊程式,不論是TCP或UDP都是以IP為第三層的通訊協定;而這類程式的定址都是以 IP位址和通訊埠號做為基準,通訊埠號﹝Port﹞一般是以Int32的方式表示,故不用多做說明,不過在許多相關類別或方法中要使用到IP位址時通常會 以IPAddress類別的執行個體為代表,第一個就是要告訴大家如何建立IPAddress類別執行個體。(1)以建構函式的方法建立:MSDN文件庫中提到三種建構函式,不過因為第三種是專屬IPv6略去不談,可以用兩種方法建立IPAddress執行個體 (a) IPAdd.
阅读全文
浙公网安备 33010602011771号