示例#1
0
 public override void close()
 {
     if (socket != null)
     {
         socket.close();
         socket = null;
     }
 }
示例#2
0
        public override void stop()
        {
            if (adhocctlSocket != null)
            {
                adhocctlSocket.close();
                adhocctlSocket = null;
            }

            base.stop();
        }
示例#3
0
 /* access modifiers changed from: protected */
 public virtual Void doInBackground(params sbyte[][] bytes)
 {
     try
     {
         DatagramSocket s       = new DatagramSocket();
         sbyte[]        command = bytes[0];
         s.send(new DatagramPacket(command, command.Length, outerInstance.lightsUnicastIP, Light.dreamScreenPort));
         s.close();
     }
     catch (SocketException socketException)
     {
         Log.i(Light.tag, "sending unicast socketException-" + socketException.ToString());
     }
     catch (Exception e)
     {
         Log.i(Light.tag, "sending unicast error-" + e.ToString());
     }
     return(null);
 }
示例#4
0
        static string GetMSSqlPort(string instanceName, string dataSource, int timeout)
        {
            string port = String.Empty;

            try {
                DatagramSocket socket = new DatagramSocket();

                // send request
                sbyte[]        buf     = new sbyte[] { 2 };
                InetAddress    address = InetAddress.getByName(dataSource);
                DatagramPacket packet  = new DatagramPacket(buf, buf.Length, address, 1434);
                socket.send(packet);
                sbyte[] recbuf = new sbyte[1024];
                packet = new DatagramPacket(recbuf, recbuf.Length, packet.getAddress(), packet.getPort());

                // try to receive from socket while increasing timeouts in geometric progression
                int iterationTimeout = 1;
                int totalTimeout     = 0;
                for (;;)
                {
                    socket.setSoTimeout(iterationTimeout);
                    try {
                        socket.receive(packet);
                        break;
                    }
                    catch (SocketTimeoutException e) {
                        totalTimeout     += iterationTimeout;
                        iterationTimeout *= 2;
                        if (totalTimeout >= timeout * 1000)
                        {
                            throw new java.sql.SQLException(
                                      String.Format("Unable to retrieve the port number for {0} using UDP on port 1434. Please see your network administrator to solve this problem or add the port number of your SQL server instance to your connection string (i.e. port=1433).", dataSource)
                                      );
                        }
                    }
                }
                sbyte[] rcvdSbytes = packet.getData();
                char[]  rcvdChars  = new char[rcvdSbytes.Length];
                for (int i = 0; i < rcvdSbytes.Length; i++)
                {
                    rcvdChars[i] = (char)rcvdSbytes[i];
                }
                String received = new String(rcvdChars);

                java.util.StringTokenizer st = new java.util.StringTokenizer(received, ";");
                String prev            = "";
                bool   instanceReached = instanceName == null || instanceName.Length == 0;
                while (st.hasMoreTokens())
                {
                    if (!instanceReached)
                    {
                        if (prev.Trim().Equals("InstanceName"))
                        {
                            if (String.Compare(instanceName, st.nextToken().Trim(), true, CultureInfo.InvariantCulture) == 0)
                            {
                                instanceReached = true;
                            }
                        }
                    }
                    else
                    {
                        if (prev.Trim().Equals("tcp"))
                        {
                            port = st.nextToken().Trim();
                            //ensure we got a valid int
                            java.lang.Integer.parseInt(port);
                            break;
                        }
                    }
                    prev = st.nextToken();
                }
                socket.close();

                if (!instanceReached)
                {
                    throw new java.sql.SQLException(
                              String.Format("Specified SQL Server '{0}\\{1}' not found.", dataSource, instanceName)
                              );
                }
                return(port);
            }
            catch (java.sql.SQLException) {
                throw;
            }
            catch (Exception e) {
                throw new java.sql.SQLException(e.Message);
            }
        }