Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Network feature non-functional? (CE4.0)
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
Smidge204
Newbie cheater
Reputation: 0

Joined: 01 Jan 2004
Posts: 19

PostPosted: Thu Jan 01, 2004 10:33 am    Post subject: Network feature non-functional? (CE4.0) Reply with quote

'lo everyone...

I've been poking around Cheat Engine's Network abilities, but it seems to not want to work for me. Just to make sure I'm doing it right:

-Start CE Server on machine running game I want to edit
-Start CE Client on machine I want to monitor from
-Start game on server machine (A remote "launch" function would be a nice touch... *G*)
-Use the "Select Process" function on the client to get a list of processes running on server

Problem is, it sorta borks at this point. Here's a clip from the server's log window:

Code:

Server started on port:1500
192.168.1.14 made an connection!
config
Update timer intervals
Process list
192.168.1.14 disconnected!
Winsock buffer full, Waiting...


It takes a minute or two to get the "disconnected!" error, and I never get a process list on the client. First time I try it, to shows only a "System" process and double clicking it brings up a "please wait while the list is transmitted" dialog. Subsequent tries are just blank lists.

Is this an actual problem or am I doing something wrong?
=Smidge=
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25296
Location: The netherlands

PostPosted: Thu Jan 01, 2004 10:51 am    Post subject: Reply with quote

it is a problem yes.

this is what should have happened:
Code:
Server started on port:1500
192.168.0.48 made an connection!
config
Update timer intervals
Process list
Open process


What OS are you using? 95/98/98se/me/nt/2000/xp ?
What connection speed is between those computers? (I've only tested it with at least 10Mbit, so if it's slower that may be the problem, but I doubt it)
Can you get a normal process list with cheat engine on the server ?
If so, are there any weird characters in the processname after [system] ?

And, if you're an advanced network user, did you change the MTU to something less than 512 ? (Although CE should then have split it up, and combined it at the client....)
Back to top
View user's profile Send private message MSN Messenger
Smidge204
Newbie cheater
Reputation: 0

Joined: 01 Jan 2004
Posts: 19

PostPosted: Thu Jan 01, 2004 11:39 am    Post subject: Reply with quote

The server is running Win2K Pro. The client is running Win98.

Both machines are connected through a 10mbit hub.

Cheat Engine works great when run locally. There are no strange characters in the process list (at any time, network or not).

I checked the MTU settings on both machines and fiddle for a bit (pun intended!) but can't seem to get it to work. (Server was originally set to 1500, client to 576). I'll keep poking around though.

What I DID notice, though, is that if I make the 98 box the server and the 2K box the client, everything works fine!
=Smidge=
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25296
Location: The netherlands

PostPosted: Thu Jan 01, 2004 1:19 pm    Post subject: Reply with quote

Quote:
Cheat Engine works great when run locally.

Does that mean that when you run both the server and the client on the win98 box it works ?
Back to top
View user's profile Send private message MSN Messenger
Smidge204
Newbie cheater
Reputation: 0

Joined: 01 Jan 2004
Posts: 19

PostPosted: Thu Jan 01, 2004 2:23 pm    Post subject: Reply with quote

Yes. Connecting to 127.0.0.1 on both machines works fine. Running the non-network version also works.

Just connecting to Win2K from Win98 seems broken. I've even tried Win98 to Win98 (with a 3rd machine) and it works both ways. (3rd 98 machine didn't work with the 2K server either)

That reminds me. Is there a keyboard shortcut for the process list? It's really hard to use without a mouse Smile
=Smidge=
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25296
Location: The netherlands

PostPosted: Thu Jan 01, 2004 6:37 pm    Post subject: Reply with quote

Great, it's one of those problems where I've got no clue why it doesnt work.

98->98 OK
98->2000 Failure
2000->98 OK

If you havn't tried it yet: make the MTU of the 2000 box the same as the MTU on the 98 systems

Is the 2000 server running a firewall? Perhaps it's blocking transfer when it detects a process list transmission? (Or just cuts of data at random moments)

In the 2000 server: Is there a process name thats longer than 249 characters?

Also try:http://members.chello.nl/~cheatengine/ceserver.zip and extract it over the current server. It contains some more log info in the process list part that may help me pinpoint the problem.
Back to top
View user's profile Send private message MSN Messenger
Smidge204
Newbie cheater
Reputation: 0

Joined: 01 Jan 2004
Posts: 19

PostPosted: Thu Jan 01, 2004 8:37 pm    Post subject: Reply with quote

I've tried MTUs of 576, 1012, 1480 (The "Auto-Discovered" value) and 1500. Doesn't seem to have any effect.

None of my machines are firewalled. They all connect to a central hub, then through a router/firewall to the internet. there shouldn't be anything blocking traffic on this side of router.

The longest tag in task manager's process list is "System Idle Process", but I'm guessing that doesn't count :wink:

I built a little bandwidth benchmarker tool (by no means an accurate measure of network bandwidth...) to test the connection between the two.

98 -> 2K : ~2.2 kbps
2K -> 98 : ~460 kbps (98 client crashes often**)

The huge difference is mainly because the measurement relies heavily on processor speed - 233MHz versus 1.45GHz. I'm 99.9% sure the 98 client crashes because a socket buffer overflow. (Can't keep up with 400+ bytes of data, and it accumulates until it explodes?). If I throttle the trasmit speed manually then it doesn't crash.

I blame Win98's crappy sockets. But unless the CE server tries to force several megs of data down the client's throat, then the problems proably aren't related.

I also tried the new server you linked. About half a second after the client connects, (Almost as fast as I can turn my head to look at the screen...) the textbox fills with "Winsock buffer full, Waiting..." and the program stops responding (caught in a loop). I managed to take a screenshot with some useful(?) data. See attachment

Edit: Could you get it to dump the text to file as well as the window? If so I could collect everything it spits out and just trim off the junk...

Maybe it's a problem with the way your code handles sockets and 2K? Unfortunately I only have one 2K machine or else I'd test it.
=Smidge=
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25296
Location: The netherlands

PostPosted: Fri Jan 02, 2004 12:51 am    Post subject: Reply with quote

The way CE sends data to the client is by sending a buffer of data to another component that uses the winsock dll to send data.

if the buffer is big enough it sends the data to the winsock buffer, but if the winsock buffer can't handle the ammount of data I give it returns -1 (and doesnt send anything to the buffer)

so, I try to send the data to the buffer buffer (certainly never bigger than 50 bytes in the process list) and if it fails I wait 10ms, and try again.

while (sendbuf(xxx)==-1)
Sleep(10);

Is this what screws it up for win 98, should the wait inbetween be bigger ? (I cant test in win98, I cant get my network driver to work, some annoying NDIS protection failure)

edit:
you might want to try out http://members.chello.nl/~cheatengine/ceserver.zip again. It doesnt have log saving yet, but it has a changed sendbuf routine.
If it cant send a buffer for 5 seconds it tries to send the buffer byte for byte. If it also fails to send 1 byte in 5 seconds it just gives up on that command. (so it shouldn't crash in a infinite loop anymore)
Back to top
View user's profile Send private message MSN Messenger
Smidge204
Newbie cheater
Reputation: 0

Joined: 01 Jan 2004
Posts: 19

PostPosted: Fri Jan 02, 2004 6:14 am    Post subject: Reply with quote

That delay was just what I needed to snag the log.

http://24.47.146.241:84/celog.txt

It's worth mentioning that I never clicked the process list button on the client. This happens as soon as it connects. The obvious question would be: why is it trying to send the process list over and over and over when the client didn't even ask for it?

"But unless the CE server tries to force several megs of data down the client's throat, then the problems proably aren't related." - It send over 8 megs! :D

Perhaps waiting for an ACK from the client after sending the list... then not sending it again until it's requested? (Which I'm sure is a bug in the first place... Or is it possible the client keeps asking for it?)
=Smidge=
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25296
Location: The netherlands

PostPosted: Fri Jan 02, 2004 11:37 am    Post subject: Reply with quote

I can't acces that log right now.

When connected the client only sends 2 commands:
SetConfig (9 bytes)
SetTimerSpeed (5 bytes)

The server only sends a process list if it receives a byte thats 0

If thats the case, I have no idea why it's sending out 0's instead of the data I want to send.

Extra:
I just tested the client/server over the internet with a max upload speed of 48KB/sec and all went fine. Processlist+memorybrowser. (and the memorybrowser really uses a lot more than that simple process list)
This was between two win XP systems though.

Also tested it on a 100MBps lan between a 3 GHz (as server) and a 750 MHz (client) and all worked fine... (and both xp...)
Back to top
View user's profile Send private message MSN Messenger
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25296
Location: The netherlands

PostPosted: Fri Jan 02, 2004 2:41 pm    Post subject: Reply with quote

try the following network and client http://members.chello.nl/~cheatengine/network.zip

The client cant save anything (as i was in the middle of changing the save tables again while i started with this), but it uses a new sendbuf routine i wrote.

I havn't tested what happens when the buffer is full (cant get it to happen on any of my systems here), but i'm using some extra checks now that "should" fix the problem of overflow. (now first checks if it CAN write data to the socket using the select function)
Back to top
View user's profile Send private message MSN Messenger
Smidge204
Newbie cheater
Reputation: 0

Joined: 01 Jan 2004
Posts: 19

PostPosted: Fri Jan 02, 2004 5:19 pm    Post subject: Reply with quote

Sorry about the log thing. I had to scavange my hub to repair the network at my office so we could meet a deadline Razz As such, my whole LAN is out for awhile. I've attached the log here as a ZIP.

Once my network is back on one piece I can test the new client.

Edit: Back up with a dinky 5-port hub for now. The new server doesn't freak out, but the client doesn't display the list. (Problem with client?)
=Smidge=
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25296
Location: The netherlands

PostPosted: Fri Jan 02, 2004 8:16 pm    Post subject: Reply with quote

Just tried the updated version, AND the release version with a winXP and a win98SE system. Winxp(3 Ghz) as server, Win98SE as client (and 600Mhz) and it works ok.

This was also done using a internet connection though.

Quote:
Back up with a dinky 5-port hub for now. The new server doesn't freak out, but the client doesn't display the list. (Problem with client?)

Does the log of the new server show that the process list is being transmitted ?
Back to top
View user's profile Send private message MSN Messenger
Smidge204
Newbie cheater
Reputation: 0

Joined: 01 Jan 2004
Posts: 19

PostPosted: Fri Jan 02, 2004 8:58 pm    Post subject: Reply with quote

I don't suppose you have any documentation on the protocol you use to send the data back and forth huh? I'm thinking it may be an issue on my end, so I'd like to write a "fake" client and see if I can figure it out...

I recently tried upgrading the Winsock pack on the 98 machine (Just plain 98, not SE) with no luck. :/

And yes, the server log shows the process list being transmitted.
=Smidge=
Back to top
View user's profile Send private message
Dark Byte
Site Admin
Reputation: 458

Joined: 09 May 2003
Posts: 25296
Location: The netherlands

PostPosted: Fri Jan 02, 2004 9:42 pm    Post subject: Reply with quote

then it's propably the client who doesn't know how to handle the data it gets. (perhaps the server sends those 0's now...)

and yes, I do have a protocol documentation (simple one, but there is one...)

Question: does the client show a error after 30 seconds ? or does it just show a blank process list ?
Back to top
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites