Example #1
0
        public virtual void Handshake()
        {
            if (serverSocket == null)
            {
                System.Net.IPHostEntry hostInfo  = System.Net.Dns.GetHostEntry("localhost");
                System.Net.IPAddress   ipAddress = hostInfo.AddressList[0];
                serverSocket   = new TcpListener(ipAddress, port);
                socket         = serverSocket.AcceptSocket();
                socket.NoDelay = true;

                System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
                socket.Send(encoding.GetBytes("ANTLR " + DebugEventListenerConstants.ProtocolVersion + "\n"));
                socket.Send(encoding.GetBytes("grammar \"" + grammarFileName + "\n"));
                Ack();

                //serverSocket = new ServerSocket( port );
                //socket = serverSocket.accept();
                //socket.setTcpNoDelay( true );
                //OutputStream os = socket.getOutputStream();
                //OutputStreamWriter osw = new OutputStreamWriter( os, "UTF8" );
                //@out = new PrintWriter( new BufferedWriter( osw ) );
                //InputStream @is = socket.getInputStream();
                //InputStreamReader isr = new InputStreamReader( @is, "UTF8" );
                //@in = new BufferedReader( isr );
                //@out.println( "ANTLR " + DebugEventListenerConstants.PROTOCOL_VERSION );
                //@out.println( "grammar \"" + grammarFileName );
                //@out.flush();
                //ack();
            }
        }
        static void Main(string[] args)
        {
            t = new System.Timers.Timer();
            t.Interval = 1000;
            t.Elapsed += T_Elapsed;

            try
            {
                System.Net.IPAddress IP = System.Net.IPAddress.Parse("192.168.3.22");
                System.Net.Sockets.TcpListener listener = new System.Net.Sockets.TcpListener(IP, 1955);
                Console.WriteLine("\rPackets Recd: ");
                Console.WriteLine("\rTime: " + " Seconds");
                Console.WriteLine("\rMoving Avg:\t  Bytes/sec");
                Console.WriteLine("\rTotal Avg:\t  Bytes/sec");
                Console.WriteLine("\rMax:\t Bytes/sec");
                Console.WriteLine("\rMin:\t Bytes/sec");
                listener.Start();
                while (true)
                {
                    System.Net.Sockets.Socket client = listener.AcceptSocket();
                    Console.WriteLine("Connection accepted.");
                    startTime = DateTime.Now;
                    bytesRec = 0;
                    t.Start();
                    var childSocketThread = new Thread(() =>
                    {
                        while (client.Connected == true)
                        {
                            byte[] data = new byte[1000];
                            int size = client.Receive(data);
                            bytesRec += uint.Parse(size.ToString());
                            /*                            Console.WriteLine("Recieved data: ");
                                                        for (int i = 0; i < size; i++)
                                                            Console.Write(Convert.ToChar(data[i]));
                                                      Console.WriteLine(); */

                        }
                        client.Close();
                    });
                    childSocketThread.Start();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("FATAL EXCEPTION!");
                Console.WriteLine(ex.Message);
                Console.WriteLine("Press enter to exit");
                Console.ReadLine();
            }
        }
Example #3
0
 static void SourceDaemonListen(object para)
 {
     System.Net.Sockets.TcpListener TL = (System.Net.Sockets.TcpListener)para;
     System.Net.Sockets.Socket      sock;
     while ((sock = TL.AcceptSocket()) != null)
     {
         System.Net.Sockets.NetworkStream NS = new System.Net.Sockets.NetworkStream(sock);
         BD2.Daemon.StreamHandler         SH = new BD2.Daemon.StreamHandler(NS);
         BD2.Daemon.ObjectBus             OB = new BD2.Daemon.ObjectBus(SH);
         BD2.Daemon.ServiceManager        SM = new BD2.Daemon.ServiceManager(OB);
         Guid serviceType_SQL = Guid.Parse("57ce8883-1010-41ec-96da-41d36c64d65d");
         SM.AnnounceService(new BD2.Daemon.ServiceAnnounceMessage(Guid.NewGuid(), serviceType_SQL, "Source"), BD2.Conv.Daemon.MSSQL.ServiceAgent.CreateAgent);
         SM.AnounceReady();
     }
 }
Example #4
0
        public void Start()
        {
            _tcpListener.Start();
            Console.WriteLine("I am a server and am listening... ");
            while (true)
            {
                System.Net.Sockets.Socket socket = _tcpListener.AcceptSocket();
                Client newClient = new Client(socket, _clients.Count);

                newClient._listenerThread      = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(ClientMethod));
                newClient._listenerThread.Name = newClient.GetName();
                newClient._listenerThread.Start(newClient);

                _clients.Add(newClient);
            }
        }
        public static void StartConnect(System.Net.Sockets.TcpListener tcpListener, int TIMEOUT, String FILE_NAME)
        {
            try
            {
                while (true)
                {
                    /* Create a buffer for receiving */
                    byte[] receiveBytes = new byte[1024];

                    /* The socket that will be used for listening */
                    System.Net.Sockets.Socket sock = null;

                    /* Number and total number of bytes read till the end of loop */
                    int bytesRead      = 0;
                    int totalBytesRead = 0;

                    /* Loop till something is read */
                    while (totalBytesRead == 0)
                    {
                        /* Sleep for 100ms if no connection is being made */
                        while (!tcpListener.Pending())
                        {
                            System.Threading.Thread.Sleep(100);
                        }

                        sock = tcpListener.AcceptSocket();
                        Console.WriteLine("A");
                        sock.ReceiveTimeout = TIMEOUT;

                        /* Sleep for another 100ms to give the client time to respond */
                        System.Threading.Thread.Sleep(100);
                        int filesize = 0;
                        try
                        {
                            /* Receive the header, terminate if not found */
                            if ((bytesRead = sock.Receive(receiveBytes)) > 0)
                            {
                                string[] headers = System.Text.Encoding.ASCII.GetString(receiveBytes).Split('\n');
                                if (headers[0] == "HEADER")
                                {
                                    Int32.TryParse(headers[1], out filesize);
                                    Console.WriteLine(headers[2].Substring(0, filesize));
                                }
                                else
                                {
                                    throw new Exception("No header received");
                                }
                            }
                            else
                            {
                                throw new Exception("No header received");
                            }
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                        }

                        /* Close everything */
                        sock.Close();
                        Console.WriteLine("C");
                    }
                }
            }
            catch (System.Threading.ThreadAbortException)
            {
                Console.WriteLine("Thread Abort");
            }
        }
Example #6
0
        public static void StartConnect(System.Net.Sockets.TcpListener tcpListener, int TIMEOUT, String FILE_NAME)
        {
            try
            {
                while (true)
                {
                    /* Create a buffer for receiving */
                    byte[] receiveBytes = new byte[1024];

                    /* The socket that will be used for listening */
                    System.Net.Sockets.Socket sock = null;

                    /* FileStream for writing */
                    System.IO.FileStream objWriter = null;

                    /* Number and total number of bytes read till the end of loop */
                    int bytesRead      = 0;
                    int totalBytesRead = 0;

                    /* Loop till something is read */
                    while (totalBytesRead == 0)
                    {
                        /* Sleep for 100ms if no connection is being made */
                        while (!tcpListener.Pending())
                        {
                            System.Threading.Thread.Sleep(100);
                        }

                        sock = tcpListener.AcceptSocket();
                        Console.WriteLine("Accepted Connection");
                        sock.ReceiveTimeout = TIMEOUT;

                        /* Sleep for another 100ms to give the client time to respond */
                        System.Threading.Thread.Sleep(100);
                        int filesize = 0;
                        try
                        {
                            /* Receive the header, terminate if not found */
                            if ((bytesRead = sock.Receive(receiveBytes)) > 0)
                            {
                                string[] headers = System.Text.Encoding.ASCII.GetString(receiveBytes).Split('\n');
                                if (headers[0] == "HEADER")
                                {
                                    Console.WriteLine("Receiving file of size " + headers[1] + " bytes");
                                    Int32.TryParse(headers[1], out filesize);
                                }
                                else
                                {
                                    throw new Exception("No header received");
                                }
                            }
                            else
                            {
                                throw new Exception("No header received");
                            }

                            while ((totalBytesRead != filesize) && (bytesRead = sock.Receive(receiveBytes, receiveBytes.Length, System.Net.Sockets.SocketFlags.None)) > 0)
                            {
                                /* Delete existing file to be safe */
                                if (objWriter == null)
                                {
                                    if (System.IO.File.Exists(FILE_NAME))
                                    {
                                        System.IO.File.Delete(FILE_NAME);
                                    }
                                    objWriter = System.IO.File.OpenWrite(FILE_NAME);
                                }

                                objWriter.Write(receiveBytes, 0, bytesRead);

                                totalBytesRead += bytesRead;

                                /* Reduce buffer size if bytes left are less than it */
                                if (filesize - totalBytesRead < receiveBytes.Length)
                                {
                                    receiveBytes = new byte[filesize - totalBytesRead];
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                        }

                        /* Close everything */
                        sock.Close();
                        if (!(objWriter == null))
                        {
                            objWriter.Close();
                            objWriter = null;
                        }
                        Console.WriteLine("Closed Connection");
                    }
                }
            }
            catch (System.Threading.ThreadAbortException)
            {
                Console.WriteLine("Thread Abort");
            }
        }
Example #7
0
        public virtual void Handshake() {
            if (serverSocket == null) {
                System.Net.IPHostEntry hostInfo = System.Net.Dns.GetHostEntry("localhost");
                System.Net.IPAddress ipAddress = hostInfo.AddressList[0];
                serverSocket = new TcpListener(ipAddress, port);
                socket = serverSocket.AcceptSocket();
                socket.NoDelay = true;

                System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
                socket.Send(encoding.GetBytes("ANTLR " + DebugEventListenerConstants.ProtocolVersion + "\n"));
                socket.Send(encoding.GetBytes("grammar \"" + grammarFileName + "\n"));
                Ack();

                //serverSocket = new ServerSocket( port );
                //socket = serverSocket.accept();
                //socket.setTcpNoDelay( true );
                //OutputStream os = socket.getOutputStream();
                //OutputStreamWriter osw = new OutputStreamWriter( os, "UTF8" );
                //@out = new PrintWriter( new BufferedWriter( osw ) );
                //InputStream @is = socket.getInputStream();
                //InputStreamReader isr = new InputStreamReader( @is, "UTF8" );
                //@in = new BufferedReader( isr );
                //@out.println( "ANTLR " + DebugEventListenerConstants.PROTOCOL_VERSION );
                //@out.println( "grammar \"" + grammarFileName );
                //@out.flush();
                //ack();
            }
        }
Example #8
0
        public static void StartConnect(System.Net.Sockets.TcpListener tcpListener, int TIMEOUT, ToolStripStatusLabel status, TreeView view)
        {
            status.Font = new Font(status.Font, System.Drawing.FontStyle.Bold);
            try
            {
                while (true)
                {
                    byte[] receiveBytes = new byte[1024];

                    System.Net.Sockets.Socket sock = null;

                    System.IO.FileStream objWriter = null;

                    int bytesRead      = 0;
                    int totalBytesRead = 0;

                    while (totalBytesRead == 0)
                    {
                        while (!tcpListener.Pending())
                        {
                            System.Threading.Thread.Sleep(100);
                        }

                        sock                = tcpListener.AcceptSocket();
                        status.Text         = "1 client connected";
                        sock.ReceiveTimeout = TIMEOUT;

                        System.Threading.Thread.Sleep(100);
                        int filesize = 0;
                        try
                        {
                            if ((bytesRead = sock.Receive(receiveBytes)) > 0)
                            {
                                string[] headers = System.Text.Encoding.ASCII.GetString(receiveBytes).Split('\n');
                                if (headers[0] == "HEADER")
                                {
                                    status.Text = "Receiving ticket of size " + headers[1] + " bytes";
                                    Int32.TryParse(headers[1], out filesize);
                                }
                                else
                                {
                                    throw new Exception("No header received");
                                }
                            }
                            else
                            {
                                throw new Exception("No header received");
                            }

                            while ((totalBytesRead != filesize) && (bytesRead = sock.Receive(receiveBytes, receiveBytes.Length, System.Net.Sockets.SocketFlags.None)) > 0)
                            {
                                if (objWriter == null)
                                {
                                    if (System.IO.File.Exists(TICKET_FILE))
                                    {
                                        System.IO.File.Delete(TICKET_FILE);
                                    }
                                    objWriter = System.IO.File.OpenWrite(TICKET_FILE);
                                }

                                objWriter.Write(receiveBytes, 0, bytesRead);


                                totalBytesRead += bytesRead;

                                if (filesize - totalBytesRead < receiveBytes.Length)
                                {
                                    receiveBytes = new byte[filesize - totalBytesRead];
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine(e.Message);
                        }


                        sock.Close();
                        if (!(objWriter == null))
                        {
                            objWriter.Close();
                            objWriter = null;

                            status.Text = "1 Ticket Received";
                            ProcessTicket(view);
                        }
                    }
                }
            }
            catch (System.Threading.ThreadAbortException)
            {
                Console.WriteLine("Thread Abort");
            }
        }
Example #9
0
        static void Main(string[] args)
        {
            //writes all available serial ports
            for (int i = 0; i < SerialPort.GetPortNames().Length; i++)
            {
                Console.WriteLine(SerialPort.GetPortNames()[i]);
            }

            //defualt for now will change to specific port for that robot.
            SerialPort serial = new SerialPort("COM4", 9600);

            serial.Parity = 0;
            //this creates a tcp socket on port 100 to localhost
            System.Net.IPAddress           ipAd = System.Net.IPAddress.Parse("127.0.0.1");
            System.Net.Sockets.TcpListener tcp  = new System.Net.Sockets.TcpListener(ipAd, 100);
            //this defines the client that is connected
            System.Net.Sockets.Socket client;

            //this runs the loop till end command
            bool run = true;


            //open the serial port
            try
            {
                serial.Open();
                //output the current state
                Console.WriteLine("Opened Comm port on port " + serial.PortName + " with baud rate " + serial.BaudRate);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }



            //open the tcp server
            tcp.Start();
            //output the current state
            Console.WriteLine("Opened tcp server on port 100 of " + ipAd.ToString());

            //create the client
            client = tcp.AcceptSocket();
            Console.WriteLine("Connected to client " + client.RemoteEndPoint);

            //run an inifinte loop of reading from tcp and writing to serial
            //and reading from serial to write to tcp
            while (run)
            {
                //the input buffer varaible
                if (client.ReceiveBufferSize > 0)
                {
                    byte[] inp = new byte[1];
                    //gets values from the stream and sends them out to serial
                    client.Receive(inp);
                    serial.Write(inp, 0, inp.Length);
                    Console.WriteLine("in from client: " + Convert.ToChar(inp[0]));
                }

                //gets value from serial and outputs it to tcp
                if (serial.BytesToRead > 0)
                {
                    //normal operation
                    byte[] outp = new byte[1];
                    serial.Read(outp, 0, outp.Length);
                    client.Send(outp);
                    Console.WriteLine("out to client: " + Convert.ToChar(outp[0]));
                }
            }
        }
Example #10
0
        public bool DoPair()
        {
            if (Properties.Settings.Default.GUID.Length >= 8)
              {
            return true;
            // already paired, and have a GUID floating around
              }

               /*
              ZeroconfService.NetServiceBrowser br = new ZeroconfService.NetServiceBrowser();
              br.AllowMultithreadedCallbacks = true;
              br.DidFindService += new ZeroconfService.NetServiceBrowser.ServiceFound(br_DidFindService);
              br.SearchForService("_daap._tcp", ""); // \o/
              */

              // Create service to advertise our control abilities
              Random rdmPort = new Random();
              int portNum = rdmPort.Next(50000, 51000);

              ZeroconfService.NetService sv = new ZeroconfService.NetService("", "_touch-remote._tcp", Environment.MachineName + "TunesRemote", portNum);
              sv.AllowMultithreadedCallbacks = true;

              Dictionary<string, string> d = new Dictionary<string, string>();
              d["DvNm"] = Environment.MachineName + "-iRemote";
              d["RemV"] = "10000";
              d["DvTy"] = "iPod";
              d["RemN"] = "Remote";
              d["txtvers"] = "1";

              byte[] codez = new byte[8];
              Random rdm = new Random();
              rdm.NextBytes(codez);
              string pair = "";
              for (int i = 0; i < 8; ++i)
            pair += codez[i].ToString("x2");

              d["Pair"] = pair;

              sv.TXTRecordData = Dict2TXT(d);
              sv.Publish(); // Imma control me an iTunes

              System.Net.Sockets.TcpListener server = new System.Net.Sockets.TcpListener(System.Net.IPAddress.Any, portNum);
              server.Start();
              while (true)
              {
            System.Windows.Forms.MessageBox.Show("Hit ok, and then enter pincode (0000) into iTunes");

            while (!server.Pending())
              System.Threading.Thread.Sleep(100);

            System.Net.Sockets.Socket client = server.AcceptSocket();
            // They sending us something, but who cares - it should be a pairing request unless they've changed the spec again

            byte[] code = new byte[8];

            Random r = new Random();
            r.NextBytes(code);

            Array.Copy(code, 0, PAIRING_RAW, 16, 8);

            //string niceCode = toHex(code);

            byte[] header = System.Text.Encoding.ASCII.GetBytes("HTTP/1.1 200 OK\r\nContent-Length: " + PAIRING_RAW.Length.ToString() + "\r\n\r\n");
            byte[] reply = new byte[header.Length + PAIRING_RAW.Length];

            Array.Copy(header, 0, reply, 0, header.Length);
            Array.Copy(PAIRING_RAW, 0, reply, header.Length, PAIRING_RAW.Length);

            client.Send(reply);

            // paired?
            Properties.Settings.Default.GUID = Convert.ToBase64String(code);
            Properties.Settings.Default.Save();

            client.Close();
            server.Server.Close();
            break;

              }
              return true;
        }