C# UDP网络通信的实现示例
public Form1()
{
InitializeComponent();
}
void f1()
{
byte[] body = new byte[1024];
while (true)
{
int count = socket.Receive(body); //接受数据
string s = Encoding.UTF8.GetString(body, 0, count);
richTextBox1.Invoke((Action)(() =>
{
richTextBox1.AppendText(s + "
");
richTextBox1.SelectionStart = richTextBox1.Text.Length;
richTextBox1.ScrollToCaret();
}));
}
}
// 打开连接
Socket socket;
private void button1_Click(object sender, EventArgs e)
{
try
{
//1创建客户端对象
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
//bind 如果前后端写的端口一致的时候 出现错误,端口号只能使用一次
//2 绑定ip和端口号
socket.Bind(new IPEndPoint(IPAddress.Parse("192.168.107.83"), 8082));
Thread th = new Thread(f1);
th.Start();
}
catch (Exception ex)
{
MessageBox.Show("端口号被占用");
}
}
//发送消息
private void button2_Click(object sender, EventArgs e)
{
if (socket != null)
{
//参数1 发送的字符串转成字节数组
//参数2 发送数据的远程终端 new IPEndPoint(IPAddress.Parse("192.168.107.83"), 8081)
socket.SendTo(Encoding.UTF8.GetBytes("倒反天罡"), new IPEndPoint(IPAddress.Parse("192.168.107.83"), 8081));
}
}
//关闭
private void button3_Click(object sender, EventArgs e)
{
socket.Close();//关闭
socket = null;
}
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播