Never mind, I found it. The size (10240) used to make up a message was larger than the SIZE 1500 used to specify the maximum length of a message.
Thanks for a handy piece of code!
melora | [reply] |
The value of $datasize is deliberately larger than SIZE. This is because the mtu on ethernet (max transmission unit) is 1496 bytes. By setting the packet size larger, you are forcing fragmentation which means you're more likely to get a correct response (since at half duplex the frags tend to collides and thus don't reach the remote host).
I'd check it against a host you've deliberately set to half duplex, just to make sure it works if you've changed that behaviour.
Glad it proved useful though.
| [reply] [d/l] [select] |
That's interesting. I couldn't get it to work at all at the lower size. Sorry, more specifically: I get "Unknown error at pingsniff.pl at line 132" (the recv call, for each call). When I upped the SIZE it started working. (didn't capitalize for emphasis, the constant is caps.) Hmm. Some kind of problem where the incoming packet is bigger than the maximum size anticipated. "Unknown error" is frustrating; doesn't tell enough about what happened. Well, thanks yet again for your help.
| [reply] |