none
Visual C# Socket erreur de creation

    Discussion générale

  • Donc je suis entrant de develloper une app qui gere de la reconnaisance vocale et une connection a un serveur tcp. Cepnedant j'ai cette erreur:

    Exception levée : 'System.Net.Internals.SocketExceptionFactory.ExtendedSocketException' dans System.Net.Sockets.dll
    Une exception de type 'System.Net.Internals.SocketExceptionFactory.ExtendedSocketException' s'est produite dans System.Net.Sockets.dll mais n'a pas été gérée dans le code utilisateur
    Une tentative d’accès à un socket de manière interdite par ses autorisations d’accès a été tentée

    Je sais que pour cree un socker en raw il faut les dorit admin mais la j'utilise un stream

    Mon code:

    TcpClient tcpClient = new TcpClient();
            NetworkStream networkStream;
            StreamReader clientStreamReader;
            StreamWriter clientStreamWriter;
    
            public MainPage()
            {
                this.InitializeComponent();
                // Initialize MyRecognizer and Load Grammar
    
                connectToYanaForAllAsync("192.168.1.17", 9999);
                sendInfoToYanaSocket();
                createGrammarFromYana();
                disconnectFromYana();
            }
            
            public void sleep(long millis) { Stopwatch stopwatch = Stopwatch.StartNew();  while (true)  { if (stopwatch.ElapsedMilliseconds >= millis) { break; } }  }
    
            public void connectToYanaForAllAsync(String ip, int port)
            {
                TcpClient client = new TcpClient();
                TcpClient tcpClient = new TcpClient();
                IPAddress ipAddress = IPAddress.Parse(ip); //ipHostInfo.AddressList[0];
                IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);
                tcpClient.Client.Connect(remoteEP);
    
                networkStream = tcpClient.GetStream();
                clientStreamReader = new StreamReader(networkStream);
                clientStreamWriter = new StreamWriter(networkStream);
    
                /*
                IPAddress ipAddress = IPAddress.Parse(ip); //ipHostInfo.AddressList[0];
                IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);
                // Create a TCP/IP  socket.  
                //sock = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
                sock = new Socket(SocketType.Stream, ProtocolType.Tcp);
                sock.Connect(remoteEP);
                while (!sock.Connected) { Debug.WriteLine("Connecting!"); }
                */
                Debug.WriteLine("Connected!");
            }
    
            
    
            public void disconnectFromYana()
            {
                clientStreamReader.Dispose();
                clientStreamWriter.Dispose();
                networkStream.Dispose();
                tcpClient.Client.Shutdown(SocketShutdown.Both);
            }
    
            public void sendInfoToYanaSocket()
            {
                String infos = "{\"action\":\"client_infos\",\"type\":\"listen\",\"version\":\"2\",\"location\":\"bureau\",\"token\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"}<EOF>";
                byte[] msg = Encoding.ASCII.GetBytes(infos);
                clientStreamWriter.Write(infos);
            }
    
            public void createGrammarFromYana()
            {
                String infos = "{\"action\":\"GET_SPEECH_COMMANDS\"}<EOF>";
                byte[] msg = Encoding.ASCII.GetBytes(infos);
                clientStreamWriter.Write(msg);
    
                sleep(200);
                
                String returnStr = clientStreamReader.ReadToEnd();
                Debug.WriteLine(String.Join("Received: ", returnStr, " bytes!"));
            }
    Btw j'utilise visual studio 2017


    lundi 25 juin 2018 09:15

Toutes les réponses