using AUCMA.STORE.Common; using AUCMA.STORE.Entity.DAO; using AUCMA.STORE.Entity.DTO; using Nancy.Json; using NetworkCommsDotNet; using NetworkCommsDotNet.Connections; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using System.Threading; using System.Threading.Tasks; namespace AUCMA.STORE.NetWork { public class NetWorkServer { private static JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); public delegate void BaseMaterialInfoRefresh(BaseMaterialDTO baseMaterialDTO); public static event BaseMaterialInfoRefresh BaseMaterialInfoRefreshEvent; public static void init() { // IP地址和端口 IPEndPoint thePoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), int.Parse("1212")); //开始监听此IP和端口 使用TCP协议 Connection.StartListening(ConnectionType.TCP, thePoint); //关联消息类型为GetName的消息的处理方法 NetworkComms.AppendGlobalIncomingPacketHandler("GetName", IncomingMsgHandle); Console.WriteLine("已经开始监听"); } public static void IncomingMsgHandle(PacketHeader header, Connection connection, string msg) { //获取队列数据 ,出库 if (msg.Equals("123")) { connection.SendObject("ResName", JsonChange.ModeToJson(TaskDictionary.getOutDictionary())); return; } //入库 if (msg.Equals("456")) { connection.SendObject("ResName", JsonChange.ModeToJson(TaskDictionary.getInDictionary())); return; } //手动任务 if (msg.Equals("789")) { connection.SendObject("ResName", JsonChange.ModeToJson(TaskDictionary.getOtherDictionary())); return; } connection.SendObject("ResName", msg); BaseMaterialDTO baseMaterialDTO = javaScriptSerializer.Deserialize(msg); if (BaseMaterialInfoRefreshEvent != null) { BaseMaterialInfoRefreshEvent(baseMaterialDTO); } } } }