Ejemplo n.º 1
0
        public cTcpSocketServer(cTcpSocket tcpSocket, int iListenPort)
        {
            TcpSocket  = tcpSocket;
            ListenPort = iListenPort;


            if (iListenPort < 1 || iListenPort > 65535)
            {
                RSMPGS.SysLog.SysLog(cSysLogAndDebug.Severity.Error, "Portnumber is invalid");
            }
            else
            {
                try
                {
                    listener = new TcpListener(IPAddress.Any, ListenPort);
                    listener.Start();
                    lock (this)
                    {
                        cTcpSocketServerThread ServerThread = new cTcpSocketServerThread(this);
                        new Thread(new ThreadStart(ServerThread.RunThread)).Start();
                        ServerSockets.Add(ServerThread);
                    }
                    RSMPGS.SysLog.SysLog(cSysLogAndDebug.Severity.Info, "Waiting for connection at port " + ListenPort.ToString());
                }
                catch (SocketException se)
                {
                    RSMPGS.SysLog.SysLog(cSysLogAndDebug.Severity.Error, "Could not create socket server thread: " + se.Message);
                }
            }
        }
Ejemplo n.º 2
0
        public cTcpSocketClient(cTcpSocket tcpSocket, string sServerAddress, int iReconnectInterval, bool bConnectAutomatically)
        {
            TcpSocket            = tcpSocket;
            ReconnectInterval    = iReconnectInterval;
            ConnectAutomatically = bConnectAutomatically;

            try
            {
                IPAddress[] ips;
                ips = Dns.GetHostAddresses(cHelper.Item(sServerAddress, 0, ':'));

                // Lookup some IPv4 address (fails in Windows 7 otherwise)
                foreach (IPAddress ip in ips)
                {
                    if (ip.AddressFamily == AddressFamily.InterNetwork)
                    {
                        ServerAddress = ip;
                        break;
                    }
                }

                /*
                 *  IPHostEntry host = Dns.GetHostEntry(cHelper.Item(sServerAddress, 0, ':'));
                 *
                 *  // Lookup some IPv4 address (fails in Windows 7 otherwise)
                 *  foreach (IPAddress ip in host.AddressList)
                 *  {
                 *    if (ip.AddressFamily == AddressFamily.InterNetwork)
                 *    {
                 *      ServerAddress = ip;
                 * break;
                 *    }
                 *  }
                 */

                ServerPort = Int32.Parse(cHelper.Item(sServerAddress, 1, ':'));
                if (ServerPort > 0 && ServerPort < 65536 && ServerAddress != null)
                {
                    ThreadIsRunning    = true;
                    ClientThread       = new cTcpSocketClientThread(this);
                    PleaseTryToConnect = ConnectAutomatically;
                    new Thread(new ThreadStart(ClientThread.RunThread)).Start();
                    RSMPGS.SysLog.SysLog(cSysLogAndDebug.Severity.Info, "Created connection thread for server " + sServerAddress);
                }
            }
            catch (SocketException se)
            {
                RSMPGS.SysLog.SysLog(cSysLogAndDebug.Severity.Error, "Could not create client thread: " + se.Message);
            }
        }