HPSocket是一款高性能的网络通信库,它是基于IOCP模型(Windows平台)和EPOLL模型(Linux平台)实现的。HPSocket支持TCP、UDP、HTTP等多种通信协议,并且提供了丰富的API,使得开发者可以更加方便地开发出高性能、高稳定性的网络应用。
HPSocket的应用场景十分广泛,包括但不限于:
C#public partial class Form1 : Form
{
TcpClient client=new TcpClient();
public Form1()
{
InitializeComponent();
// 设置事件处理程序
//连接事件
client.OnConnect += Client_OnConnect;
//发送后触发
client.OnSend += Client_OnSend;
//接收事件
client.OnReceive += Client_OnReceive;
//删除事件
client.OnClose += Client_OnClose;
}
private HandleResult Client_OnClose(IClient sender, SocketOperation socketOperation, int errorCode)
{
this.Invoke(() =>
{
txtLog.AppendText("关闭连接");
txtLog.AppendText(System.Environment.NewLine);
});
return HandleResult.Ok;
}
private HandleResult Client_OnReceive(IClient sender, byte[] data)
{
this.Invoke(() =>
{
txtLog.AppendText("接收数据"+System.Text.Encoding.UTF8.GetString(data));
txtLog.AppendText(System.Environment.NewLine);
});
return HandleResult.Ok;
}
private HandleResult Client_OnSend(IClient sender, byte[] data)
{
this.Invoke(() =>
{
txtLog.AppendText("发送数据");
txtLog.AppendText(System.Environment.NewLine);
});
return HandleResult.Ok;
}
private HPSocket.HandleResult Client_OnConnect(HPSocket.IClient sender)
{
this.Invoke(() =>
{
txtLog.AppendText("打开连接");
txtLog.AppendText(System.Environment.NewLine);
});
if (sender.IsConnected)
{
return HandleResult.Ok;
}
return HandleResult.Error;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnConnect_Click(object sender, EventArgs e)
{
client.Connect("127.0.0.1", 3001);
}
private void btnSend_Click(object sender, EventArgs e)
{
// 发送数据
byte[] bs = Encoding.Default.GetBytes("Hello, HPSocket!");
client.Send(bs, bs.Length);
}
}
C# public partial class Form1 : Form
{
TcpServer server = new TcpServer();
public Form1()
{
InitializeComponent();
//准备开始侦听
server.OnPrepareListen += Server_OnPrepareListen;
//服务器成功接受一个新的客户端连接请求时被触发
server.OnAccept += Server_OnAccept;
//接收数据
server.OnReceive += Server_OnReceive;
//关闭
server.OnClose += Server_OnClose;
}
private HPSocket.HandleResult Server_OnClose(HPSocket.IServer sender, IntPtr connId, HPSocket.SocketOperation socketOperation, int errorCode)
{
return HPSocket.HandleResult.Ok;
}
private HPSocket.HandleResult Server_OnReceive(HPSocket.IServer sender, IntPtr connId, byte[] data)
{
this.Invoke(() =>
{
txtReceive.AppendText(System.Text.Encoding.UTF8.GetString(data));
txtReceive.AppendText(System.Environment.NewLine);
});
return HPSocket.HandleResult.Ok;
}
private HPSocket.HandleResult Server_OnAccept(HPSocket.IServer sender, IntPtr connId, IntPtr client)
{
return HPSocket.HandleResult.Ok;
}
private HPSocket.HandleResult Server_OnPrepareListen(HPSocket.IServer sender, IntPtr listen)
{
return HPSocket.HandleResult.Ok;
}
private void btnListen_Click(object sender, EventArgs e)
{
//开始侦听
server.Port = 3001;
server.Address= "127.0.0.1";
server.Start();
}
}
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!