- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于UDP、TCP协议的C#网络编程
基于UDP、TCP协议的C#网络编程之一
(2007-06-13 18:00:14)
HYPERLINK javascript:; 转载▼
分类: HYPERLINK /s/articlelist_1279629174_3_1.html \t _blank .NET ??? 写这篇之前,先简单介绍一下TCP、UDP协议,深的讲不出来,有不明白的请问我秘书Dawnh同学。
??? TCP(传输控制协议)是 TCP/IP 协议栈中的传输层协议,它通过序列确认以及包重发机制,提供可靠的数据流发送和到应用程序的虚拟连接服务。与IP协议相结合, TCP组成了因特网协议的核心。
??? UDP(用户数据报协议)是ISO参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP协议基本上是 IP 协议与上层协议的接口。UDP协议适用端口分辨运行在同一台设备上的多个应用程序。
??? C#中,已将TCP,UDP,SMTP等协议封装为相应的类型库,提供了一系列方法供程序员进行操作,可以简单的理解为,基于TCP的编程就好象通电话, 我拨打贱人甲电话,贱人甲必须按下接听键,我们之间才能建立起有效的连接,而基于UDP的编程就好象是收音机广播,我这头只管播,对面谁在听或者是不是收 到我并不关心。TCP、UDP同属于高层协议,复杂程度是大大不如Socket编程的。
??? 下面我准备写两个例子,一个用UDP,一个用TCP,TCP比较好理解,UDP实际上也不麻烦,但是从网上找资料看你会看的非常晕,MSDN的各种Sample也统统放到一个类里写,效果并不好,我稍微一总结,先写个基于UDP的例子。
??? 示例一:UDP
??? 窗体:
???
???
??? Form1做为服务器端,按下Send,将文本框的值发送出去,Form1做为客户端,接收信息并加入到ListBox控件中。
?????? Form1:
public partial class Form1 : Form??? {??????? UdpClient uc; //声明UDPClient??????? public Form1()??????? {?????????????????????? uc = new UdpClient(); //初始化??????????? InitializeComponent();??????? }
??????? private void button1_Click(object sender, EventArgs e)??????? {?????????????????????? string temp = this.textBox1.Text; //保存TextBox文本
??????????? //将该文本转化为字节数组???????????? byte[] b = System.Text.Encoding.UTF8.GetBytes(temp);
??????????? //向本机的8888端口发送数据??????????? uc.Send(b, b.Length,Dns.GetHostName(),8888);??????? }??? }?????? Form2:
public partial class Form2 : Form??? {??????? UdpClient uc = null; //声明UDPClient??????? public Form1()??????? {
??????????? //屏蔽跨线程改控件属性那个异常??????????? CheckForIllegalCrossThreadCalls = false;??????????? InitializeComponent();
??????????? //注意此处端口号要与发送方相同??????????? uc = new UdpClient(8888);
??????????? //开一线程??????????? Thread th = new Thread(new ThreadStart(listen));
??????????? //设置为后台??????????? th.IsBackground = true;??????????? th.Start();??????? }??????? private void listen()??????? {
??????????? //声明终结点??????????? IPEndPoint iep = new IPEndPoint(IPAddress.Parse(0),8888);??????????? while
原创力文档


文档评论(0)