I am using socket messaging to read commands in a Karel program. The sender is a Linux PC. The controller is sending a TCP Window Update packet for every byte it reads from the socket, slowing the process considerably. It takes >200ms to read a 51 byte message.
I've attached a Wireshark screenshot. Packet 45 is the PC sending commands. Packets 47-70 are the Karel program sending progress messages. Packets 71-122 are all TCP Window Update packets, each incrementing the window size by 1 byte. Messages are received intact and the program works correctly. It is just too slow for our application. I know this is an old beast, but Fanuc's TCP stack should be more efficient than this.
Has anyone else seen this? Is there a workaround? I looked for system variables that might control the TCP window size or flow control, but didn't find any. Do formatting options on the READ statement help?
R-J31B controller running version 6.4
Relevant lines from my Karel code:
MAX_STR_LEN = 128
cmd : STRING[MAX_STR_LEN]
cmd = ''