Sto lavorando a un'applicazione client/server TCP Ruby usando GServer e TCPSocket. Ho incontrato un problema che non capisco. Il mio client TCPSocket si collega correttamente al mio GServer, ma posso solo inviare dati usando puts. Le chiamate a TCPSocket.send o TCPSocket.write non fanno nulla. C'è qualche magia che mi manca?Ruby TCPSocket write non funziona, ma puts fa?
tcp_client = TCPSocket.new(ipaddr, port)
tcp_client.puts('Z') # -> GServer receives "Z\n"
Ma se io uso di scrittura o mando ...
tcp_client = TCPSocket.new(ipaddr, port)
tcp_client.write('Z') # -> nothing is received
tcp_client.send('Z') # -> nothing is received
Grazie per l'aiuto
Ulteriori informazioni:
- Il comportamento è lo stesso su Linux & di Windows .
- Il lavaggio della presa dopo la scrittura non modifica il comportamento.
Pensavo di aver usato recvfrom per il lato server, ma è risultato che stavo usando gets, che sta cercando il carattere newline. – nathan