📄 networkprotocol.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;
namespace GPCore.NetworkProtocols
{
public abstract class NetworkProtocol : INetworkProtocol
{
public abstract void SendData(byte[] a, IPAddress To);
public virtual void SendData(byte[] a, String To)
{
IPAddress addr = Resolve(To);
SendData(a, addr);
}
public virtual IPAddress Resolve(String To)
{
IPAddress addr;
if (!IPAddress.TryParse(To, out addr))
addr = Dns.GetHostAddresses(To)[0];
return addr;
}
public virtual void SendData(Stream Out, IPAddress To)
{
//MemoryStream mem = new MemoryStream();
byte[] buffer = new byte[Out.Length];
while (Out.Read(buffer, 0, buffer.Length) > 0)
SendData(buffer, To);
}
public virtual void SendData(Stream Out, string To)
{
IPAddress addr = Resolve(To);
SendData(Out, addr);
}
public abstract event NetworkDelegate DataReceived;
public abstract byte[] PauseForData(IPAddress From, int Size);
public virtual byte[] PauseForData(String From)
{
return PauseForData(From, 255);
}
public virtual byte[] PauseForData(IPAddress From)
{
return PauseForData(From, 255);
}
public virtual byte[] PauseForData(String From, int Size)
{
IPAddress addr = Resolve(From);
return PauseForData(addr, 255);
}
protected int port;
public virtual void Initialize(int port)
{
this.port = port;
}
public abstract event NotifyCore onError;
#region IDisposable Members
public abstract void Dispose();
#endregion
}
public interface INetworkProtocol : IDisposable
{
void SendData(Byte[] a, IPAddress To);
void SendData(Byte[] a, String To);
void SendData(Stream Out, IPAddress To);
void SendData(Stream Out, String To);
event NetworkDelegate DataReceived;
byte[] PauseForData(IPAddress From, int Size);
byte[] PauseForData(String From);
byte[] PauseForData(IPAddress From);
byte[] PauseForData(String From, Int32 Size);
void Initialize(Int32 port);
event NotifyCore onError;
}
public delegate void NetworkDelegate(byte[] packetBytes, IPAddress From);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -