C# WinForm UDP 发送和接收消息

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Windows.Forms;
 
namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        UdpClient client = new UdpClient();
        public Form1()
        {
            CheckForIllegalCrossThreadCalls = false;
            InitializeComponent();
            Thread recvThread = new Thread(RecvMsg);
            recvThread.IsBackground = true;
            recvThread.Start();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string ip = textBox1.Text.Trim();
            string port = textBox2.Text.Trim();
            if (ip == null || port == null)
            {
                return;
            }
            IPEndPoint host = new IPEndPoint(IPAddress.Parse(ip),Convert.ToInt32(port));
 
            client.Connect(host);
            richTextBox1.Text = "已连接\n";
            textBox1.Enabled = false;
            textBox2.Enabled = false;
            button1.Enabled = false;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            if (client == null)
            {
                return;
            }
            string content = richTextBox2.Text.Trim();
            if (content == "" || content == null)
            {
                return;
            }
            byte[] buff = Encoding.UTF8.GetBytes(content);
            int v = client.Send(buff,buff.Length);
            richTextBox1.Text += content + "\n";
            richTextBox2.Text = null;
        }
 
        UdpClient recvClient = new UdpClient(new IPEndPoint(IPAddress.Parse("192.168.1.237"),40477));//接收方的IP
        private void RecvMsg()
        {
            while (1==1)
            {
                IPEndPoint remoteHost = null;
                byte[] recvByte = recvClient.Receive(ref remoteHost);
                string msg = Encoding.UTF8.GetString(recvByte);
                richTextBox1.Text += msg+"\n";
            }
        }
    }
}

  界面以及结果:

 

 

 

 


__EOF__

本文作者echo_lovely
本文链接https://www.cnblogs.com/echo-lovely/p/14068037.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   echo_lovely  阅读(1424)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示