public void SendRawPkt(NetBuffer nb) { //非法判断 if (mSocket == null) { IGGDebug.Log("socket is invalid."); return; } // 如果根本就没有连接,那么不用发送了 if (!this.IsConnected) { return; } // 当前还有没发出去的包,为了保证顺序,我们这次也别尝试了,直接插入到Pending列表中 if (mPendingSendPkt.Count > 0) { mPendingSendPkt.Add(nb); } // 尝试发送一次 else { // 尝试发送这个数据包 try { int sentBytes = mSocket.Send(nb.Pbuffer, nb.HaveSendBytes, nb.NeedSendBuffSize, SocketFlags.None); // 如果没有完整地把包发送出去 if (sentBytes < nb.NeedSendBuffSize) { NetConnectState.SendDataState(false); } else { NetConnectState.SendDataState(true); } nb.CGNetBuffer(); } catch (Exception e) { IGGDebug.LogError(e); } } }