// send thread private void SendTask(object objectToSend) { try { // convert object to byte array byte[] dataToSend = Etc.ObjectToByteArray(objectToSend); // make sure data is converted correctly if (dataToSend != null) { // check for connection if (m_ClientSocket == null || !m_ClientSocket.Connected) { // connect tcp client m_ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); m_ClientSocket.Connect(m_TargetIP, m_TargetPort); } if (m_ClientSocket.Connected && dataToSend.Length > 0) { // send data m_ClientSocket.Send(dataToSend, dataToSend.Length, SocketFlags.None); // disconnect m_ClientSocket.Disconnect(true); } } } catch (SocketException se) { OnNetworkError(se); } }