public bool Send(TcpClient client, ProtoMsg frame) #endif { if (client == null) { return(false); } //确保我们没有写入同一个客户端的竞争条件 // Make sure that we don't have any race conditions with writing to the same client lock (client) { try { //从帧中获取原始字节并发送 // Get the raw bytes from the frame and send them byte[] data = frame.GetData(); RawWrite(client, data); return(true); } catch { //客户端不再连接或无响应 // The client is no longer connected or is unresponsive } } return(false); }
/// <summary> /// The direct byte send method to the specified client /// </summary> /// <param name="client">The target client that will receive the frame</param> /// <param name="frame">The frame that is to be sent to the specified client</param> /// <summary> ///直接字节发送方法到指定的客户端 /// </ summary> /// <param name =“client”>将接收帧的目标客户端</ param> /// <param name =“frame”>要发送到指定客户端的帧</ param> public virtual void Send(ProtoMsg frame) { //确保我们没有写入同一个客户端的竞争条件 // Make sure that we don't have any race conditions with writing to the same client lock (client) { //从帧中获取原始字节并发送 // Get the raw bytes from the frame and send them byte[] data = frame.GetData(); RawWrite(data); } }