Advertisement

Windows XP/2000 Winsock comms problems

Started by August 20, 2003 02:48 PM
5 comments, last by FlowerChildXL 21 years, 5 months ago
Hey guys, My multiplayer project is working well and good except for one thing. It turns out that if I have a game with a Windows XP machine and a Windows 2000 machine, I run into all kinds of networking problems. The weird part is if it is two XP, or two 2K machines connected, I''ve got no trouble at all, and to top it off, the problem only occurs if the XP machine acts as the server, wheras if it joins as a client, it''s all good. A little info that may help: I''m using a client/server configuration and TCP/IP for all comms (other than the initial server broadcast indicating a game is up and running over a LAN, which uses UDP, and which doesn''t cause any problems). Any help that anyone could provide, or even just a link to an article discussing such problems, would be much appreciated. Thanks in advance!
NT/XP/2K are native Unicode while Win9X is native ACSII, so maybe you have some text string that you are exchanging that a combinaison of machines is getting the link to cough. NT/XP/2K have enhanced network abilities (ex: IOCP, TransmitFile(), ... ) that Win9X either don't have or don't have a good emulation for. Check the Win32 API functions you are using (especially the new ones) for NT/98 incompatibilities. Also, you may want to check which Winsock version is actually used by examining the returned value from WSAStartup()'s WSADATA; sometimes the returned version is not the one you asked for...

-cb

[edited by - cbenoi1 on August 20, 2003 4:03:21 PM]
Advertisement
Well, the problem seems to only occur between 2K and XP machines, with Win9X machines working just fine (including when they are connected to 2K or XP machines).

The problems seem to only start when XP and 2K are connected within the same game.
We had problems at my place of work with XP vs 2k as well. There are a couple of things to be careful of.

First off, use netstat to make sure that the 2k client doesn''t have a load of sockets waiting to close. They''d be in FIN_WAIT, I believe, although it''s been a while since i''ve seen this problem. XP and 2k seem to have different tolerances for number of sockets and different policies for closing them.

Secondly - and more problematically - as I understand MS rewrote the sockets layer from the ground up for XP. Take a look at MSDN for more information on that; I can''t seem to find the particular docs in question at the moment.

hope this helps,
ld
No Excuses
Thanks! I''ll check it out!
XP has a firewall enabled by default. Take a look at that.


Oooh, you found the horadric nuke!
Did you know, that by using a horadric nuke, you can blow up Diablo and solve all our problems!
Editor42 ...builds worlds
Advertisement
The XP firewall is not enabled by default, though it is something to check to make sure it isn''t blocking.
.

This topic is closed to new replies.

Advertisement