First off I'm not sure if this is a bug...or the way its suppose to work...but it is a problem in my script.

I'm reading data from a socket into a binvar the problem is when the data spans multiple frames...yes we are talking about network traffic. Down below is TCP traffic on the network...

Direction Flags Length Seq Ack
Server -> ME ACK 1360 Seq=2341 Ack=1250
ME -> Server ACK 0 Seq=1250 Ack=2359
Server -> ME ACK 1360 Seq=2359 Ack=1250
Server -> ME ACK 1360 Seq=2373 Ack=1250
ME -> Server ACK 0 Seq=1250 Ack=2389
Server -> ME ACK, PSH 46 Seq=2389 Ack=1250
ME -> Server ACK 0 Seq=1250 Ack=2394

If data is to big to fit into one frame it is broken into multiple frames. All of the data is read into a buffer and the push flag tells the reciever to send the buffer to the application.

In mirc scripting I would see 2 sockreads
4080 bytes
46 bytes

It is to my understanding that the sockread should have read all 4126 bytes. Or am I just a retard laugh

I would like to know if this is something that mirc is doing or if its the way it is suppose to work? Can anyone with TCP experience or knows a great deal about TCP help me out? Oh...my OS is win XP pro.