/// <summary> /// 向客户端发送瓶签信息 /// </summary> /// <param name="displayData"></param> /// <returns></returns> public bool Send(string displayData) { try { //这里直接用sessionId,是因只有一个客户端进行连接屏;同时发送加分包符 return(server.Send(this.sessionId, Encoding.Default.GetBytes(displayData + StaticDictionary.SPLITTER))); } catch (Exception ex) { InternalLogger.Log.Info(String.Format("{0}:{1}[SessionId={2}]发送数据出错{3}。", this.currentClient == null ? null : currentClient.Address, this.currentClient == null ? 0 : currentClient.Port, this.sessionId, ex.Message)); } return(false); }
static bool exit = false; //标记退出while static void Main(string[] args) { tcpServer = new AsyncSocketTcpServer(5003); tcpServer.DataReceived += tcpServer_DataReceived; tcpServer.Connected += tcpServer_Connected; tcpServer.DataSent += tcpServer_DataSent; tcpServer.Disconnected += tcpServer_Disconnected; tcpServer.ErrorOccurred += tcpServer_ErrorOccurred; tcpServer.Started += tcpServer_Started; tcpServer.Stopped += tcpServer_Stopped; tcpServer.Start(false); Console.WriteLine("请在30秒内,开启tcpclient测试端,并进行连接"); (new Thread(() => { Thread.Sleep(30000); exit = true; })).Start(); do { Thread.Sleep(700); //如果有客户端连接成功,就向客户端发送一个瓶签号 if (sessionId != -1) { tcpServer.Send(sessionId, Encoding.Default.GetBytes("20181028100111")); } } while (sessionId == -1 && !exit); if (sessionId != -1 || exit) { if (exit) { Console.WriteLine("没有任何客户端进行连接,输入输入任意键,关闭程序"); } if (sessionId != -1) { Console.WriteLine("服务端已向客户端发送瓶签号,请验证客户端是否收到。输入任意键,关闭程序"); } } Console.ReadLine(); }