Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
davidverriere's avatar
7 years ago

Oculus Go Network Issue on opening Socket

Hi,
I try to open a socket on my unity application but it fails.
The code can run on android device or unity player but not on oculus.

My code 
            IPAddress ipAddress = this.LocalIPAddress();

            IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);

            try
            {
Exception occured here => this.socketlistener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Exception => Protocol option not supported, it's socket exception

Log && Version
02-03 16:22:07.393 31073 31088 I Unity   : Unity v2018.3.4f1, Oculus Utilities v1.32.0, OVRPlugin v1.32.0, SDK v1.1.19.0.
02-03 16:22:07.571 31073 31088 E Unity   : Unable to find libc
02-03 16:22:08.317 31073 31088 E Unity   : StartServer: Protocol option not supported

Many thanks for help

PS : function used from prevous code 
        private IPAddress LocalIPAddress()
        {
            if (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
            {
                return null;
            }

            IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());

            return host
                .AddressList
                .FirstOrDefault(ip => ip.AddressFamily == AddressFamily.InterNetwork);
        }

4 Replies

Replies have been turned off for this discussion
  • It seams that you can not open Socket with this method on oculus.

    I replace Socket open opening by a TcpListernet and it works.

  • Hi @davidverriere
    is there a chance you can share part of your code to study how the sockets work through the oculus go I am still struggling with a basic connection of the go to my pc...

    Regards
  • Hi,
    I used the sample of TcpListener from Microsoft dotnet documentation : 

    using System;
    using System.IO;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;

    class MyTcpListener
    {
    public static void Main()
    {
    TcpListener server=null;
    try
    {
    // Set the TcpListener on port 13000.
    Int32 port = 13000;
    IPAddress localAddr = IPAddress.Parse("127.0.0.1");

    // TcpListener server = new TcpListener(port);
    server = new TcpListener(localAddr, port);

    // Start listening for client requests.
    server.Start();

    // Buffer for reading data
    Byte[] bytes = new Byte[256];
    String data = null;

    // Enter the listening loop.
    while(true)
    {
    Console.Write("Waiting for a connection... ");

    // Perform a blocking call to accept requests.
    // You could also user server.AcceptSocket() here.
    TcpClient client = server.AcceptTcpClient();
    Console.WriteLine("Connected!");

    data = null;

    // Get a stream object for reading and writing
    NetworkStream stream = client.GetStream();

    int i;

    // Loop to receive all the data sent by the client.
    while((i = stream.Read(bytes, 0, bytes.Length))!=0)
    {
    // Translate data bytes to a ASCII string.
    data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
    Console.WriteLine("Received: {0}", data);

    // Process the data sent by the client.
    data = data.ToUpper();

    byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);

    // Send back a response.
    stream.Write(msg, 0, msg.Length);
    Console.WriteLine("Sent: {0}", data);
    }

    // Shutdown and end connection
    client.Close();
    }
    }
    catch(SocketException e)
    {
    Console.WriteLine("SocketException: {0}", e);
    }
    finally
    {
    // Stop listening for new clients.
    server.Stop();
    }


    Console.WriteLine("\nHit enter to continue...");
    Console.Read();
    }
    }


    • rossana.terracciano's avatar
      rossana.terracciano
      Explorer

      Hi! 🙂 is this TcpListener used in your Oculus? Does it connect with any other socket in the network (for instance if I run a Python socket on my MacBook)?