use wireshark on you end, check the outgoing data and incoming data. If you don't get incoming data that's where the problem, lies and use wireshark on the remote end to check the outgoing data. From the symptoms described my initial suspicion is a firewall somewhere blocking the transmission back.
Also some of the stream setup for TCP can be a bit wonky and block until it gets the data it needs, so check that the code doesn't stop before you expect it to, waiting for remote input (It is unlikely from what you describe, but past experience tells me this is the most common problem)
E: "Did they... did they just endorse the combination of the JSDF and US Army by showing them as two lesbian lolicons moving in together and holding hands and talking about how 'intimate' they were?"
B: "Have you forgotten so soon? They're phasing out Don't Ask, Don't Tell."
Also some of the stream setup for TCP can be a bit wonky and block until it gets the data it needs, so check that the code doesn't stop before you expect it to, waiting for remote input (It is unlikely from what you describe, but past experience tells me this is the most common problem)
E: "Did they... did they just endorse the combination of the JSDF and US Army by showing them as two lesbian lolicons moving in together and holding hands and talking about how 'intimate' they were?"
B: "Have you forgotten so soon? They're phasing out Don't Ask, Don't Tell."