/// <summary> /// Create a new prosthesis socket client /// </summary> /// <param name="onDataCallback">Callback for when data is available over the socket</param> /// <param name="ipAddress"></param> /// <param name="port"></param> /// <param name="logger">The logger which this socket will use. Must be non-null</param> public ProsthesisSocketClient(OnSocketDataReceive onDataCallback, string ipAddress, int port, Logger logger) { mTCPClient = new TcpClient(); OnDataReceive = onDataCallback; mEndPointIP = ipAddress; mPort = port; mLogger = logger; //Create a small buffer to appease the socket library mBuffer = new byte[4]; mConnectionCallback = new AsyncCallback(OnConnection); mSocketWorkerStartCallback = new WaitCallback(OnConnectionStart); mDataReadyCallback = new AsyncCallback(OnDataAvailable); }
public void Shutdown() { if (mTCPClient != null) { mLogger.LogMessage(Logger.LoggerChannels.Network, string.Format("Closing connection to {0}", mEndPointIP)); mTCPClient.Close(); mTCPClient = null; } if (ConnectFinished != null) { ConnectFinished(this, false); } if (ConnectionClosed != null) { ConnectionClosed(this); } ConnectFinished = null; OnDataReceive = null; }