2012-11-22 5 views
1

소켓을 통해 클라이언트에서 서버로 문자열을 보내려고합니다. 나는소켓을 통해 클라이언트에서 서버로 문자열 보내기

hostname = 'localhost' 
port = 3000 
s = TCPSocket.new(hostname, port) 

s.write("hello") 
s.puts("hello") 
s.print("hello") 

s.close 

이 세 가지 방법 (쓰기, 풋 프린트를) 일을 시도하지만 나에게 오류 (오류가 있지만 터미널의 브라우저에 표시되지 않음) 제공합니다 ERROR bad Request-Line 'hello'합니다.

클라이언트에서 서버로 문자열을 보낼 수 있습니까? 아니면 서버에서 클라이언트로만 문자열을 보낼 수 있습니까? 내가 루비 1.8.7 및 레일 3.0.1

+0

동일한 컴퓨터에서 포트 3000에서 수신 대기하는 TCP 서버 응용 프로그램이 있습니까? 그렇지 않으면 메시지를 보내기 위해 핸드 셰이크를 통해 TCP 연결을 설정할 수 없습니다. – fayyazkl

+0

@ CodePainters는 내가 잊어 버린 것을 말했다 : 나는 WEBrick과 이야기하고 싶다. 그렇다. 3000 번 포트에있다. 우리는 마침내 다른 방법으로 그것을 시도했지만 어쨌든 고맙다. – itziki

+0

CodePainters가 대답하여 @itziki를 도와 주었다면, upvote/accept해야한다. . – fayyazkl

답변

3

을 사용하고

그것은 당신의 Hello 라인을 좋아하지 않는 서버처럼 보인다. 당신은 루비와 레일즈에 대해 언급하고 싶습니다. WEBrick HTTP 서버와 이야기하고 싶습니다. 그렇다면 HTTP를 사용하는 것이 어떻습니까?

하면, HTTP 클라이언트를 실행하면 작업 HTTP의 TCPSocket를 사용하여 클라이언트뿐만 아니라 Net::HTTP 예를 찾을 수 있습니다 A Tiny Web Browser 섹션에서 http://www.tutorialspoint.com/ruby/ruby_socket_programming.htm

살펴보고합니다.

HTTP가 필요한 경우 Net::HTTP은 바퀴를 다시 만드는 것처럼 HTTP 소리를 구현하는 방법입니다.

+0

이 답변을 주셔서 감사합니다. 내 월급을 저장했습니다. –

관련 문제