/// <summary> /// 向对方发送数据 /// </summary> /// <param name="byteData">数据内容</param> /// <param name="clientID">连接标识</param> public void SendData(SmmpPacket packet, int clientID) { if (_tcpMode == TcpMode.Client) { if (!Connected) { onError(_localTcpStruct, _remoteTcpStruct, TcpError.TcpClientNotConnected, null, TcpOptionType.SendData, null); return; } byte[] bytePackect = packet.StartMakeup(); _ns.Write(bytePackect, 0, bytePackect.Length); } else if (_tcpMode == TcpMode.Server) { __listen__readSmmp pclinet = GetListenClient(clientID); if (pclinet != null) { pclinet.SendData(packet); } else { onError(_localTcpStruct, _remoteTcpStruct, TcpError.TcpClientNotConnected, null, TcpOptionType.SendData, pclinet); } } else { onError(_localTcpStruct, _remoteTcpStruct, TcpError.UnknownModeOrNotConnected, null, TcpOptionType.SendData, null); } }
/// <summary> /// 关闭从监听创建的连接 /// </summary> /// <param name="clientID"></param> public void CloseConnect(int clientID) { __listen__readSmmp reader = GetListenClient(clientID); try { if (reader != null) { reader.CloseConnect(); } } catch { } }
private void ReadDataFromListen() { _listenWork = true; while (_listenWork) { try { TcpClient _tc = _tl.AcceptTcpClient(); __listen__readSmmp reader = new __listen__readSmmp(this, ref _tc); lock (_tcp_Reader_Array) _tcp_Reader_Array.Add(reader); Threads.ExecAsync(reader.Start); } catch { } } }
internal void onTcpEvents(TcpStruct localTcpInfo, TcpStruct remoteTcpInfo, TcpOptionType type, __listen__readSmmp tcpReader) { switch (type) { case TcpOptionType.StartListen: _listenning = true; break; case TcpOptionType.StopListen: _listenning = false; _listenWork = false; break; case TcpOptionType.ClientConnected: break; case TcpOptionType.Connected: break; case TcpOptionType.Disconnected: if (_tcpMode == TcpMode.Client) _tcpMode = TcpMode.Unknown; break; case TcpOptionType.Connecting: Thread.Sleep(0); break; default: break; } if (OnTcpEvents != null) OnTcpEvents(localTcpInfo, remoteTcpInfo, type, tcpReader); }
internal void onReceivedData(TcpStruct localTcpInfo, TcpStruct remoteTcpInfo, SmmpPacket packet, __listen__readSmmp tcpReader) { if (OnReceivedData != null) OnReceivedData(localTcpInfo, remoteTcpInfo, packet, tcpReader); }
internal void onError(TcpStruct localTcpInfo, TcpStruct remoteTcpInfo, TcpError error, Exception ex, TcpOptionType type, __listen__readSmmp tcpReader) { if (OnError != null) OnError(localTcpInfo, remoteTcpInfo, error, ex, type, tcpReader); }
internal void onConnectionEvent(TcpStruct localTcpInfo, TcpStruct remoteTcpInfo, __listen__readSmmp tcpClient, int clientID) { if (OnConnectionEvent != null) OnConnectionEvent(localTcpInfo, remoteTcpInfo, tcpClient, clientID); }
internal void onReceivedData(TcpStruct localTcpInfo, TcpStruct remoteTcpInfo, SmmpPacket packet, __listen__readSmmp tcpReader) { if (OnReceivedData != null) { OnReceivedData(localTcpInfo, remoteTcpInfo, packet, tcpReader); } }
internal void onConnectionEvent(TcpStruct localTcpInfo, TcpStruct remoteTcpInfo, __listen__readSmmp tcpClient, int clientID) { if (OnConnectionEvent != null) { OnConnectionEvent(localTcpInfo, remoteTcpInfo, tcpClient, clientID); } }
internal void onTcpEvents(TcpStruct localTcpInfo, TcpStruct remoteTcpInfo, TcpOptionType type, __listen__readSmmp tcpReader) { switch (type) { case TcpOptionType.StartListen: _listenning = true; break; case TcpOptionType.StopListen: _listenning = false; _listenWork = false; break; case TcpOptionType.ClientConnected: break; case TcpOptionType.Connected: break; case TcpOptionType.Disconnected: if (_tcpMode == TcpMode.Client) { _tcpMode = TcpMode.Unknown; } break; case TcpOptionType.Connecting: Thread.Sleep(0); break; default: break; } if (OnTcpEvents != null) { OnTcpEvents(localTcpInfo, remoteTcpInfo, type, tcpReader); } }
internal void onError(TcpStruct localTcpInfo, TcpStruct remoteTcpInfo, TcpError error, Exception ex, TcpOptionType type, __listen__readSmmp tcpReader) { if (OnError != null) { OnError(localTcpInfo, remoteTcpInfo, error, ex, type, tcpReader); } }