From: Rob Muhlestein Date: 2006-12-30T06:50:13+09:00 Subject: Re: how to properly format data when using TCPSocket.send() Nathan Taylor wrote: > It would be greatly appreciated if someone would clue me in to what I am > doing wrong here. I am trying to send this data below to httpd(Apache) > however I am receiving a http response code of 400 (bad request). > Apache is logging "request failed: error reading the headers" in > error_log, however if I replace the \r\n with \x0d\x0a and send this > through netcat to Apache I get the proper response code I am looking > for. > > > http_socket = TCPSocket.new("#{i}", 80); http_socket.send("PUT > /puttest.html HTTP/1.0\r\nHost: #{i}\r\nConnection: > close\r\nContent-type: text/html\r\nContent-Length: > 309\r\nSee Spot Run!See Spot > Run!See Spot Run!\r\n\r\n", 0) Looks like you found your answer, but one tool for sockets programming, if you aren't already using it, is 'nc'. It can be used as a 'telnet' replacement but more relevant to your case, you can make it into a web (or any) server and see every byte your client is sending: nc -l -k 3001 ...will start your 'server'. Then you set your client to connect to localhost 3001, you can use nc as a client to test that as well: echo hello | nc localhost 3001 -- Rob Muhlestein http://rob.muhlestein.net