概念
HP-Socket 是國產的TCP、UDP和HTTP 通信框架,包含服務端、客戶端和 Agent 組件,提供 C/C++、C#、Java、Python 等多種編程語言接口。
與傳統TCP通訊區別的是HP-Socket 對通信層做到了完全封裝,程序不必關注通信層的任何細節;HP-Socket提供基于事件通知模型的 API 接口,能簡單高效地整合到新舊應用程序中。
示例
TcpServer hpServer;bool tcp1State = false;public Form1(){InitializeComponent();}enum PlcPort{Op1 = 4000,}private void Form1_Load(object sender, EventArgs e){hpServer = new TcpServer();hpServer.OnPrepareListen += OnPrepareListen;hpServer.OnAccept += OnAccept; //連接事件hpServer.OnClose += OnClose; //斷開連接事件hpServer.OnReceive += OnReceive;// 接收數據hpServer.OnSend += OnSend;// 發送數據hpServer.Address = "127.0.0.1";// 設置服務端IPhpServer.Port = Convert.ToUInt16(PlcPort.Op1);// 設置端口hpServer.SendPolicy = SendPolicy.Direct;hpServer.Start();ReportMsg("服務端已開啟并監聽");}private HandleResult OnPrepareListen(IServer sender, IntPtr listen){return HandleResult.Ok;}private HandleResult OnAccept(IServer sender, IntPtr connId, IntPtr client){// 獲取客戶端地址if (!sender.GetRemoteAddress(connId, out var ip, out var port)){return HandleResult.Error;}return HandleResult.Ok;}//服務器收到數據private HandleResult OnReceive(IServer sender, IntPtr connId, byte[] data){try{ return HandleResult.Ok;}catch (Exception){return HandleResult.Ignore;}}private HandleResult OnSend(IServer sender, IntPtr connId, byte[] data){try{return HandleResult.Ok;}catch (Exception){return HandleResult.Ignore;}}//服務器關閉連接private HandleResult OnClose(IServer sender, IntPtr connId, SocketOperation socketOperation, int errorCode){return HandleResult.Ok;}//服務器關閉private HandleResult OnShutdown(IServer sender){return HandleResult.Ok;}