From: MonkeeSage Date: 2007-12-28T04:04:59+09:00 Subject: Re: Is there a maximum size for the receive in a TCPSocket as in str = streamSock.recv( 64000 )? On Dec 27, 12:29 pm, Victor Reyes wrote: > [Note: parts of this message were removed to make it a legal post.] > > Hello Team, > > Is there a limit on the amount of data (bytes) that can be received via the > *str = streamSock.recv( 64000 )* stmt below? > Although I put *64000 *bytes, I consistently do not get more than *5562*bytes. > When this happens the server side fails with a *`write`: broken > (Errno::EPIPE)* msg. > I know that the variable, *userCMD_output* contains all the data, since I > printed to the screen for testing. > > Thank you > > This is the server code: > > require 'socket' > port = 19557 > server = TCPServer.new("", port) > > while (session = server.accept) > input = session.gets > userCMD_output = `#{input}` > session.write("#{userCMD_output}") > session.close > end > > This is the client code: > > def runIt( srvr, comm ) > require 'socket' > port = 19557 > streamSock = TCPSocket.new( srvr, port ) > streamSock.puts("#{comm}\n") > str = streamSock.recv( 64000 ) > puts "Output from Server: #{srvr}" > print str > puts "\n" > streamSock.close > end See my reply to the last thread you posted (in short, use #read rather than #recv). Regards, Jordan