命名空间:

  • using System.Net;
  • using System.Net.Sockets;

关键 : TCP /UDP连接

UDP
UDPtCP的主要区别在于 UDP 不一定提供可靠的数据传输。事实上,该协议不能保证数据准确无误地到达目的地。UDP 在许多方面非常有效。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用 UDP 。ICQ 短消息使用 UDP 协议发送消息。
许多程序将使用单独的 tCP连接和单独的 UDP 连接。重要的状态信息随可靠的 tCP连接发送,而主数据流通过 UDP 发送。

tCP
tCP的目的是提供可靠的数据传输,并在相互进行通讯的设备或服务之间保持一个虚拟连接。tCP在数据包接收无序、丢失或在交付期间被破坏时,负责数据恢复。它通过为其发送的每个数据包提供一个序号来完成此恢复。记住,较低的网络层会将每个数据包视为一个独立的单元,因此,数据包可以沿完全不同的路径发送,即使它们都是同一消息的组成部分。这种路由与网络层处理分段和重新组装数据包的方式非常相似,只是级别更高而已。

为 确保正确地接收数据,tCP要求在目标计算机成功收到数据时发回一个确认(即 ACK)。如果在某个时限内未收到相应的 ACK,将重新传送数据包。如果网络拥塞,这种重新传送将导致发送的数据包重复。但是,接收计算机可使用数据包的序号来确定它是否为重复数据包,并在必要 时丢弃它。(文件传输协议)

UDP编程要点步骤:

1.提供UDP网络数据服务

UdpClient listen = new UdpClient(2525);

2.向指定的网络区域发送数据包

public IPAddress groupAddress = IPAddress.Parse("255.255.255.255"); //广播地址

3.发送数据包

listen.Send(sendbs, sendbs.Length, End); //sendbs 是数据包转化成字节的数组

4.指定监听的网络区域

IPEndPoint tempEnd = new IPEndPoint(IPAddress.Any, 2525);//IPAddress.Any  指所有的网络活动

5.接受数据包

接受数据包
 1        while (runing)
 2            {
 3                //用于防止程序的假死状态,但会消耗一定的效率为代价
 4                Application.DoEvents();
 5                try
 6                {
 7                    byte[] recb = listen.Receive(ref tempEnd);
 8
 9                    // 检查所接收到的信息并处理
10                    checkMessage(recb);
11                }
12                catch (Exception e)
13                {
14                    MessageBox.Show("出现错误:" + e.Message.ToString());
15                    break;
16                }
17
18            }

TCP编程要点步骤

1.提供TCP 网路服务

TcpListener listener = new TcpListener(2626);

2.开始监听

listener.Start();

3. 获取挂起排队的socket

Socket s = listener.AcceptSocket();

4.读取传输过来的数据信息

TCP服务读取数据信息
 1            FileStream filestream = new FileStream(savePath, FileMode.OpenOrCreate, FileAccess.Write);
 2            NetworkStream stream = new NetworkStream(s);
 3            //定义缓冲区
 4            byte[] bb = new byte[1024];
 5            //循环读socket流
 6            int tt = 0;
 7            while ((tt = stream.Read(bb, 0, 1024)) != 0)
 8            {//接收数据
 9                filestream.Write(bb, 0, tt);
10                filestream.Flush();
11            }
12            filestream.Close();
13

未完待续...

转载于:https://www.cnblogs.com/wuhucome888/archive/2009/02/20/1393238.html

.Net TCP/UDP 编程 【一】【原创】相关推荐

  1. TCP/UDP编程中的问题汇总

    TCP/UDP编程中的问题汇总 TCP和UDP发送大文件的问题. 答: 发送端: 发送时,先发送文件的名称及大小等信息. 然后,设置一个缓冲区的大小,假设为4K. 再循环读4K的文件内容,并发送,直到 ...

  2. Java TCP/UDP编程

    java TCP & UDP编程 UDP编程 TCP编程 UDP编程 UPD: User Datagram Protocol.面向无连接,不安全. UDP中,发送方无需知道接收方是否接受,只考 ...

  3. 原生JAVA的TCP/UDP编程

    一.TCP/UDP对比 二.TCP编程 TCP字节流编程 - Server端: public class TCPServerStream {public static void main(String ...

  4. socket与TCP/UDP编程-转

    Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序.要学Internet上的TCP/IP网络编程,必须理解Socket ...

  5. [windows网络编程]tcp/udp编程初步详解-转

    #pragma comment (lib,"ws2_32.lib") #include <Winsock2.h> #include <stdio.h> 如你 ...

  6. TCP/UDP编程基础

    一.Socket 1.TCP/IP 要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol ...

  7. Qt中的TCP/UDP编程

    网络编程,OSI(开放式系统互联参考模型)七层参考模型:应用层.表示层.会话层.传输层.网络层.数据链路层.物理层.     套接字(Socket)是网络通信的基本构建模块,又分为流式套接字(Stre ...

  8. C++ 网络编程下的socket编程(TCP\UDP),连接下位机

    正常情况下我们需要对下位机进行通信需要使用Socket进行连接操作,而在网络编程中又分为面向连接(TCP)和面向无连接(UDP)这两种,针对这两种方式,我们不做具体的原理解释,只说各自的特点和各自的应 ...

  9. Linux Kernel TCP/IP Stack — Socket Layer — TCP/UDP Socket 网络编程

    目录 文章目录 目录 TCP/UDP Socket 逻辑架构 创建 Socket 绑定 Socket 请求建立 Socket 连接 监听 Socket 接受请求 关闭连接 数据的发送和接收 send ...

最新文章

  1. VMware网络设置详解 打造超级虚拟网络 (说的最为复杂和全面的)
  2. linux切换root密码错,(转)Linux下root密码丢失和运行级别错误的解决办法
  3. 化工原理各章知识点汇总
  4. python输出字符串的后两位_Python字符串三种格式化输出
  5. vivado烧写FPGA速度调节
  6. Eclipse中使用自己的makefile管理工程
  7. Apache实验-目录别名
  8. JAVA语言中流程控制(顺序结构、判断语句、循环语句)
  9. extjs树使用别的皮肤的样式_设计师发布努努重做之后的冰雪节皮肤设计稿
  10. Oracle安装出现报错
  11. Linux桌面虚拟化技术KVM
  12. latex怎么改字体大小_latex更改字体 latex局部字体大小
  13. N阶Butterworth滤波器的频率响应(Python实现)
  14. 编写一个程序求解字谜游戏问题
  15. 牛客 NC24858 [USACO 2009 Nov S]Job Hunt
  16. python热力图参数_python3.5数据处理——百度地图热力图传值
  17. 前后端分离是什么意思?
  18. 4.2.5 预测分析法与预测分析表的构造
  19. 【iOS】录音和音频合成
  20. 偏光显微镜基本原理及主要用途

热门文章

  1. 《对不队》团队项目用户验收评审
  2. GRE Sub math 报名
  3. JS Math.round()方法原理
  4. VMWare 安装 Eclipse
  5. (转)在ios android设备上使用 Protobuf (使用dll方式)
  6. AS3 调用外部SWF中元件库中的元件 【转】
  7. 【未解决】Reporting Services报表在浏览器中的显示
  8. Mac下Idea安装Git报错Xcrun问题的解决
  9. Node --- Promise中的多异步协作
  10. 笔试小结---非对称加密算法