示例#1
0
文件: IUdp.cs 项目: yuyu2you/X_NET20
        /// <summary>发送数据流</summary>
        /// <param name="udp"></param>
        /// <param name="stream"></param>
        /// <param name="remoteEP"></param>
        /// <returns>返回自身,用于链式写法</returns>
        public static IUdp Send(this IUdp udp, Stream stream, EndPoint remoteEP = null)
        {
            Int64 total = 0;

            //var size = stream.CanSeek ? stream.Length - stream.Position : udp.BufferSize;
            var size = 1472;

            Byte[] buffer = new Byte[size];
            while (true)
            {
                Int32 n = stream.Read(buffer, 0, buffer.Length);
                if (n <= 0)
                {
                    break;
                }

                udp.Send(buffer, 0, n, remoteEP);
                total += n;

                if (n < buffer.Length)
                {
                    break;
                }
            }
            return(udp);
        }
示例#2
0
文件: IUdp.cs 项目: yuyu2you/X_NET20
        /// <summary>向指定目的地发送信息</summary>
        /// <param name="udp"></param>
        /// <param name="message"></param>
        /// <param name="encoding"></param>
        /// <param name="remoteEP"></param>
        /// <returns>返回自身,用于链式写法</returns>
        public static IUdp Send(this IUdp udp, String message, Encoding encoding = null, EndPoint remoteEP = null)
        {
            //Send(udp, Encoding.UTF8.GetBytes(message), remoteEP);

            if (encoding == null)
            {
                Send(udp, Encoding.UTF8.GetBytes(message), remoteEP);
            }
            else
            {
                Send(udp, encoding.GetBytes(message), remoteEP);
            }
            return(udp);
        }
示例#3
0
文件: IUdp.cs 项目: yuyu2you/X_NET20
        /// <summary>接收字符串</summary>
        /// <param name="udp"></param>
        /// <param name="encoding"></param>
        /// <returns></returns>
        public static String ReceiveString(this IUdp udp, Encoding encoding = null)
        {
            Byte[] buffer = udp.Receive();
            if (buffer == null || buffer.Length < 1)
            {
                return(null);
            }

            if (encoding == null)
            {
                encoding = Encoding.UTF8;
            }
            return(encoding.GetString(buffer));
        }
示例#4
0
文件: IUdp.cs 项目: yuyu2you/X_NET20
 /// <summary>向指定目的地发送信息</summary>
 /// <param name="udp"></param>
 /// <param name="buffer">缓冲区</param>
 /// <param name="remoteEP"></param>
 /// <returns>返回自身,用于链式写法</returns>
 public static IUdp Send(this IUdp udp, Byte[] buffer, EndPoint remoteEP = null)
 {
     udp.Send(buffer, 0, buffer.Length, remoteEP); return(udp);
 }