UdpClient类实例

本文详细介绍了如何使用UdpClient类进行UDP通信。包括服务器端和客户端的设置、数据的发送与接收,以及异常处理。通过示例代码展示了完整的通信流程。

UdpClient类的使用方法

UdpClient 类的使用与标准的套接字流程基本一致,包括创建实例、收发数据和关闭

1、服务器:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            StarListener();
            Console.ReadKey();
        }
        public static void StarListener() {
            //创建一个服务器、端口号为8000
            UdpClient GetClient = new UdpClient(8000);
            IPEndPoint myHost = null;
            try
            {
                while (true) {
                    Console.WriteLine("等待接收……");
                    //接收数据
                    byte[] GetBytes = GetClient.Receive(ref myHost);
                    string getstring = Encoding.Unicode.GetString(GetBytes,0,GetBytes.Length);
                    Console.WriteLine("接收数据:"+ getstring);
                    //判断是否要退出
                    if (getstring == "quit")
                        break;
                    //内容发送
                    string sendString = "合法性好";//打印出内容 
                    Console.WriteLine("发送信息:"+sendString);
                    byte[] GetMessage = Encoding.Unicode.GetBytes(sendString);
                    //发送给那个端口号
                    GetClient.Send(GetMessage,GetMessage.Length,"127.0.0.1",8001);
                }
                GetClient.Close();
                Console.WriteLine("对方已经退出,请按回车键退出");
            }
            catch (Exception)
            {
            }
        }
    }
}


1、客户端:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;

namespace UdpClient客户端
{
    class Program
    {
        static void Main(string[] args)
        {
            Send("您林");
            Send("quit");
            Console.ReadLine();
        }

        public static void Send(string message) {
            UdpClient udp = new UdpClient(8001);
            try
            {
                Console.WriteLine("向服务器发送数据: "+message);
                //发送数据
                byte[] sendBytes = Encoding.Unicode.GetBytes(message);
                udp.Send(sendBytes,sendBytes.Length,"127.0.0.1",8000);//发送的方法
                //判断是否退出
                if (message == "quit") {
                    Console.WriteLine("已经向对方发送 quit 信息,请按回车键退出程序。");
                    return;
                }
                //接收信息
                IPEndPoint myHost = null;
                byte[] getBytes = udp.Receive(ref myHost);//接收的方法
                string getstring = System.Text.Encoding.Unicode.GetString(getBytes);
                Console.WriteLine("接收信息:" + getstring);
                udp.Close();
            }
            catch (Exception)
            {
               
            }
        }
    }
}

运行效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值