Socket(UDP)通信winform demo

客户端:
窗体设计--一个listbox
namespace Client
{
    public partial class MainlForm : Form
    {
        public MainlForm()
        {
            InitializeComponent();
        }
        private void MainlForm_Load(object sender, EventArgs e)
        {
            Thread myThread = new Thread(ReceiveData);
            myThread.IsBackground = true;
            myThread.Start();
        }
        private UdpClient receiveUdpClient;
        private void ReceiveData()
        {
            IPEndPoint local = new IPEndPoint(IPAddress.Any, 8008);
            receiveUdpClient = new UdpClient(local);
            IPEndPoint remote = new IPEndPoint(IPAddress.Any, 0);
            while (true)
            {
                byte[] receiveBytes = receiveUdpClient.Receive(ref remote);
                string receiveMessage = Encoding.UTF8.GetString(receiveBytes, 0, receiveBytes.Length);
                AddItem(lst_Receive, receiveMessage);
            }
        }
        delegate void AddItemDelegate(ListBox listbox, string text);
        private void AddItem(ListBox listbox, string text)
        {
            if (listbox.InvokeRequired)
            {
                AddItemDelegate d = AddItem;
                listbox.Invoke(d, new object[] { listbox, text });
            }
            else
            {
                listbox.Items.Add(text);
                listbox.SelectedIndex = listbox.Items.Count - 1;
                listbox.ClearSelected();
            }
        }
    }
}
 
服务器端:
窗体设计--1.远程IP textbox 2.远程Porttextbox 3.发送消息内容 textbox 4.发送button
namespace Server
{
    public partial class MainForm : Form
    {
        UdpClient myUdpClient = new UdpClient();
        public MainForm()
        {
            InitializeComponent();
        }
        private void btnSend_Click(object sender, EventArgs e)
        {
            byte[] bytes = System.Text.Encoding.UTF8.GetBytes(textMsg.Text);
            IPEndPoint local = new IPEndPoint(IPAddress.Parse(remoteIp.Text), int.Parse(remotePort.Text));
            myUdpClient.Send(bytes, bytes.Length, local);
            textMsg.Text = "";
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值