基于UDP、TCP协议的C#网络编程之一
来源:互联网 发布:lol代练价格表淘宝 编辑:程序博客网 时间:2024/05/21 10:47
写这篇之前,先简单介绍一下TCP、UDP协议,深的讲不出来,有不明白的请问我秘书Dawnh同学。
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);
}
}
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 = newIPEndPoint(IPAddress.Parse("192.168.0.10"),8888);
while (true)
{
//获得Form1发送过来的数据包
string text = System.Text.Encoding.UTF8.GetString(uc.Receive(refiep));
//加入ListBox
this.listBox1.Items.Add(text);
}
}
}
IPEndPoint iep = newIPEndPoint(IPAddress.Parse("192.168.0.10"),8888);
.........
string text =System.Text.Encoding.UTF8.GetString(uc.Receive(refiep));
网上对这个貌似还是有点误解,很多人说,这里的IPEndPoint的端口号如果随便指定,也可以收到发送过来的消息,但是就是不知道为什么,我写的更简单:
IPEndPoint iep = null;
.........
string text =System.Text.Encoding.UTF8.GetString(uc.Receive(refiep));
看出问题来了吧,关键是uc.Receive方法里的ref参数,ref关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。所以你只要扔给它一个值就得了,管他什么端口号,况且端口早在声明UdpClient的时候就指定好了。
有点长,分两截。
- 基于UDP、TCP协议的C#网络编程之一
- 【转载】 基于UDP、TCP协议的C#网络编程
- 基于UDP、TCP协议的C#网络编程
- 基于UDP协议的C#网络编程
- 网络编程的TCP/UDP协议
- 基于C的UDP,TCP网络编程
- 基于TCP,UDP的网络编程总结
- 基于UDP协议的网络编程
- 基于UDP协议的网络编程
- java基于UDP协议的网络编程
- 基于UDP协议的网络编程:
- 基于UDP协议的Socket网络编程
- 基于TCP/IP协议及UDP协议的socket编程
- 网络编程中应用层(基于TCP/UDP)的协议设计
- java网络编程——基于UDP和TCP协议的小例子
- 谈谈网络编程中应用层(基于TCP/UDP)的协议设计 [帧设计]
- java网络编程学习笔记之一(TCP/IP协议与UDP协议的区别和认识)
- [网络编程]TCP协议和UDP协议的区别
- 一切归于平静...
- TEST
- 在动态库内部获取动态库路径
- Lunix调试技术
- spring.net 框架分析(三)ContextRegistry.GetContext()
- 基于UDP、TCP协议的C#网络编程之一
- 为FireFox添加IE的方法和属性
- vb 实用函数
- oracle取前几条数据语句
- ArcSDE9.3 for Oracle 10g安装和配置连接
- Windows下的Unix/Lunix模拟器 安装
- List 的 add 和 addAll 方法的区别
- Ibatis的优缺点及可行性分析
- NTP from HP doc(1/3)