------ art_11357_31429617.1190370627540 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Jovino, Thank you for your help. It works as explained. By the way, do you know of a good reading source where I can get more info about ruby network programming/support? Also, S soy latino, especùÇicamente soy de la tierra del Merengue y la Bachata, la Repù§lica Dominicana. Pero Vivo en Estados Unidos (Brooklyn) desde 1974. Gracias de nuevo por tu ayuda! VùÄtor On 9/20/07, Jovino <jovino / ya.com> wrote: > > Hello Victor: > > I think you don't have well the sequence, in your code: > > Server : Client > Write ---> Send > Gets ---> Recv > Write ---> Recv > > You must do: > > Server : Client > Write ---> Recv > Gets ---> Puts > Write ---> Recv > > Take on account too, if you use Write you must use Recv in the another > side. > If use Puts you needs to use Gets. > > > This code works on my pc: > > ---Server--- > > require 'socket' > > port = 50 > > server = TCPServer.new("", port) > > while (session = server.accept) > session.write("Communication Established!!!") > input = session.gets > system("#{input}") > session.write("Request Received From Client:#{input}") > session.close > end > > ---Client--- > > > require 'socket' > > > streamSock = TCPSocket.new( '127.0.0.1', 50 ) > > str = streamSock.recv( 100 ) > print str > puts "\n" > streamSock.puts("dir\n") > str = streamSock.recv ( 100 ) > print str > puts "\n" > > streamSock.close > > I need to change the port, I think this is for use with UDP on windows, > but > I'm not sure. > > Regards, > > Jovino Rguez > > P.D.: Eres hispano-parlante? > > -----Mensaje original----- > De: Victor Reyes [mailto:victor.reyes / gmail.com] > Enviado el: jueves, 20 de septiembre de 2007 19:22 > Para: ruby-talk ML > Asunto: Couple of questions about TCPServer.new and TCPSocket.new > > Hello Team, > > In an attempt to learn about TCP Socket programming, I wrote the following > mini tiny ruby pgms. > Although they kind of work, I am having some problems. Here they are: > > This is under AIX 5.3. > > ruby -v > ruby 1.8.6 (2007-03-13 patchlevel 0) [powerpc-aix5.3.0.0] > > 1 - I start the server side first. > 2 - Start client side. > 3 - The client gets the msg session.write("Communication Established!!!"). > > 4 - The server just "sits" there, when I expect the output of the date > command on the server console. > 5 - If kill the client side, the server now executes the date command and > the actual output is displayed. > 6 - The client side never gets the last msg from the server side. > 7 - I kill the server side. > > Your help will be appreciated. > > SERVER SIDE > > require 'socket' > > port = 19557 > > server = TCPServer.new("", port) > > while (session = server.accept) > session.write("Communication Established!!!") > input = session.gets > system("#{input}") > session.write("Request Received From Client:#{input}") > session.close > end > > > CLIENT SIDE > > require 'socket' > > streamSock = TCPSocket.new( 'nycserv-deva-app1nim', 19557 ) > streamSock.send( "date\n", 1937 ) > str = streamSock.recv( 100 ) > print str > puts "\n" > str = streamSock.recv( 100 ) > print str > puts "\n" > streamSock.close > > > ACTUAL RUN: > > > Server: > root@app1nim:/u/victor/executables/ruby>ruby ts5 (Here it just waits) > > > Client: > root@app2nim # ruby tc5 > Communication Established!!! > > NOW I KILL THE CLIENT SINCE NOTHING IS GOING ON ON THE SERVER: > > tc5:8:in `recv': Interrupt > from tc5:8 > ===> /u/victor/executables/ruby > root@app2nim # > > > NOW THE SERVER DISPLAY THESE MSGS: > > ts5:10: warning: Insecure world writable dir /usr/local in PATH, mode > 0240777 > Thu Sep 20 13:18:56 EDT 2007 > > > Thank you > > Victor > > > ------ art_11357_31429617.1190370627540--