示例#1
0
        // 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);
            }
        }