2014-04-13 2 views
0

내가, 내가 윈도우 머신에서 진수 터미널에서이 데이터를 전송 을 제어 네트워크 바이트 배열을 보내려고하고 제대로 일을하고 난 다음 내가레일 TCP 소켓

을 시도 우분투에 레일 콘솔을 사용하여 올바른 응답을 얻었다

host = "192.168.1.100" 
port = 10001 
Socket.tcp(host , ip) do |sock| sock.puts([0x01,0x00,0x00,0x00,0x00,0x21,0x04,0x61,0x64,0x6D,0x69,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x64,0x6D,0x69,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8]) end 
저는 응답으로 닐있어, 난

Socket.tcp(host , ip) do |sock| sock.write([0x01,0x00,0x00,0x00,0x00,0x21,0x04,0x61,0x64,0x6D,0x69,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x64,0x6D,0x69,0x6E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC8]) end 

을 시도 할 때 I는 반응로 (141)를 가지고 있지만, 올바른 응답은 (00 00 01 00 00 01 01 FD 00 00 01 00 01 01 02 FB)

무슨 문제인지 모르겠지만 아무도 도와 줄 수 없나요? 미리 감사드립니다.

답변

0

문제가 바이트 배열 형식이므로이 형식의 문자열로 보내야합니다. "\ x01 \ x00 \ x00 \ x00 \ x00 \ x21 \ x04 \ x61 \ x64 \ x6D \ x69 \ x6E \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x61 \ x64 \ x6 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 " 다음 응답을 사용하여 응답 = socket.recv (1000)