I investigated a bit and looks like enet_create_host SOMETIMES fails in enet_socket_bind with errno message:
"Can't assign requested address"
I am passing empty string (but not null) as ip and ports in range 12345-12445. If I use 127.0.0.1 as ip, it fails in bind socket with "Address already in use"

still investigating ;)



On 18/09/2012 16:53, Martin Zemblowski wrote:
NAT part is covered by gamespy, i get two addresses of machines involved. then i try to create host (not peer!) on mac and it fails sometimes (question: why?). if it succeeds, then we go to making connections business ;)
Regards!

On 18/09/2012 16:40, Daniel Aquino wrote:
Both hosts should try to send to one another at the same time from/to predefined ports.

https://en.wikipedia.org/wiki/UDP_hole_punching




On Tue, Sep 18, 2012 at 11:24 AM, Martin Zemblowski <[email protected] <mailto:[email protected]>> wrote:

    gamespy transport service is using udp.
    right now one of the player creates socket and just listens to
    it, another on is actively trying to connect to other party, but
    fails at create_host for some reasons. I am creating host in the
    same way on both machines.

    I am testing connectivity on the same machines constantly, so I
    dont see any reason why it should work for 3 times in a row and
    then wouldnt... and it's a bit weird moment - creating host, i
    would expect it to fail when actually trying to connect
    :(



    On 18/09/2012 16:16, Daniel Aquino wrote:
    Is gamespy using tcp or udp ?

    If both your players try to connect at the same time then they
    should get through after a retry or two.

    Although there is many types of nat's so it might not always work.



    On Tue, Sep 18, 2012 at 10:37 AM, Martin Zemblowski
    <[email protected] <mailto:[email protected]>>
    wrote:

        Hello!
        I am using enet library in conjunction with gamespy. I use
        gamespy to create socket, connect to lobby, select opponent
        and do the NAT punch-through. In next step I close gamespy
        socket, initialize enet library and try to create enet host
        with same port (in my case I pass ip as empty string) and
        then start connection to other party. It works, but not
        always. I am using three computers right now: pc vista, pc
        xp and mac osx 10.7.4. On mac sometimes (not always) I
        cannot create enet host (even if i try to create host with
        different ports, 100 retries), here's the code:

        retries = 101;
        enet_address_set_host (&enet.gAddress, ip);
        do    {
            enet.gAddress.port = port;
            enet.gHost = enet_host_create (&enet.gAddress , 1 , 2, 0
        ,0 );

            if (enet.gHost == NULL)
            {
                printf ( "An error occurred while trying to create
        an ENet host(%s:%d).\n",ip,port);
                port++; // HACK
            }
            else
                printf( "host created.\n");
            } while (enet.gHost == NULL && (--retries > 0));

        Any ideas?
        Thank you!
        Martin


        _______________________________________________
        ENet-discuss mailing list
        [email protected] <mailto:[email protected]>
        http://lists.cubik.org/mailman/listinfo/enet-discuss




    _______________________________________________
    ENet-discuss mailing list
    [email protected]  <mailto:[email protected]>
    http://lists.cubik.org/mailman/listinfo/enet-discuss


    _______________________________________________
    ENet-discuss mailing list
    [email protected] <mailto:[email protected]>
    http://lists.cubik.org/mailman/listinfo/enet-discuss




_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss



_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss

_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss

Reply via email to