I think to know why it fails you should add some logging to you code and/or attach a debugger so you can see what happens down inside enet. Perhaps gamespy is still listening on the udp port when you try to bind.<br><br><br>
<div class="gmail_quote">On Tue, Sep 18, 2012 at 11:53 AM, Martin Zemblowski <span dir="ltr"><<a href="mailto:martin@bigheadgames.co.uk" target="_blank">martin@bigheadgames.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>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 ;)<br>
Regards!<div><div class="h5"><br>
<br>
On 18/09/2012 16:40, Daniel Aquino wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">Both hosts should try to send to one another at the
same time from/to predefined ports.<br>
<br>
<a href="https://en.wikipedia.org/wiki/UDP_hole_punching" target="_blank">https://en.wikipedia.org/wiki/UDP_hole_punching</a><br>
<br>
<br>
<br>
<br>
<div class="gmail_quote">On Tue, Sep 18, 2012 at 11:24 AM, Martin
Zemblowski <span dir="ltr"><<a href="mailto:martin@bigheadgames.co.uk" target="_blank">martin@bigheadgames.co.uk</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>gamespy transport service is using udp. <br>
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.<br>
<br>
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<br>
:(
<div>
<div><br>
<br>
<br>
On 18/09/2012 16:16, Daniel Aquino wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">Is gamespy using tcp or udp ?<br>
<br>
If both your players try to connect at the same time
then they should get through after a retry or two.<br>
<br>
Although there is many types of nat's so it might not
always work.<br>
<br>
<br>
<br>
<div class="gmail_quote">On Tue, Sep 18, 2012 at 10:37
AM, Martin Zemblowski <span dir="ltr"><<a href="mailto:martin@bigheadgames.co.uk" target="_blank">martin@bigheadgames.co.uk</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<div>
<div bgcolor="#FFFFFF" text="#000000">
<div style="font-family:-moz-fixed;font-size:14px" lang="x-western">Hello! <br>
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: <br>
<br>
retries = 101; <br>
enet_address_set_host (&enet.gAddress,
ip); <br>
do { <br>
enet.gAddress.port = port; <br>
enet.gHost = enet_host_create
(&enet.gAddress , 1 , 2, 0 ,0 ); <br>
<br>
if (enet.gHost == NULL) <br>
{ <br>
printf ( "An error occurred while
trying to create an ENet
host(%s:%d).\n",ip,port); <br>
port++; // HACK <br>
} <br>
else <br>
printf( "host created.\n"); <br>
} while (enet.gHost == NULL &&
(--retries > 0)); <br>
<br>
Any ideas? <br>
Thank you! <br>
Martin <br>
<br>
</div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
ENet-discuss mailing list<br>
<a href="mailto:ENet-discuss@cubik.org" target="_blank">ENet-discuss@cubik.org</a><br>
<a href="http://lists.cubik.org/mailman/listinfo/enet-discuss" target="_blank">http://lists.cubik.org/mailman/listinfo/enet-discuss</a><br>
<br>
</blockquote>
</div>
<br>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
ENet-discuss mailing list
<a href="mailto:ENet-discuss@cubik.org" target="_blank">ENet-discuss@cubik.org</a>
<a href="http://lists.cubik.org/mailman/listinfo/enet-discuss" target="_blank">http://lists.cubik.org/mailman/listinfo/enet-discuss</a>
</pre>
</blockquote>
<br>
</div>
</div>
</div>
<br>
_______________________________________________<br>
ENet-discuss mailing list<br>
<a href="mailto:ENet-discuss@cubik.org" target="_blank">ENet-discuss@cubik.org</a><br>
<a href="http://lists.cubik.org/mailman/listinfo/enet-discuss" target="_blank">http://lists.cubik.org/mailman/listinfo/enet-discuss</a><br>
<br>
</blockquote>
</div>
<br>
<br>
<fieldset></fieldset>
<br>
<pre>_______________________________________________
ENet-discuss mailing list
<a href="mailto:ENet-discuss@cubik.org" target="_blank">ENet-discuss@cubik.org</a>
<a href="http://lists.cubik.org/mailman/listinfo/enet-discuss" target="_blank">http://lists.cubik.org/mailman/listinfo/enet-discuss</a>
</pre>
</blockquote>
<br>
</div></div></div>
<br>_______________________________________________<br>
ENet-discuss mailing list<br>
<a href="mailto:ENet-discuss@cubik.org">ENet-discuss@cubik.org</a><br>
<a href="http://lists.cubik.org/mailman/listinfo/enet-discuss" target="_blank">http://lists.cubik.org/mailman/listinfo/enet-discuss</a><br>
<br></blockquote></div><br>