테스트용으로만 쓰길 권장합니다. 왜냐면 원격에서 명령어 받아서 실행하는것은 위험할수 있으니깐요~
소스
require 'socket'
#다른 컴퓨터가 서버에 명령어를 전송해서 실행하고 결과를 받아보는 프로그램
s = TCPServer.new(2000)
loop do
client = s.accept
#1000바이트 제한
str = client.recv(100)
#숫자 1앞에있는 `입니다 엔터옆에 있는 '가 아니에요~
#str을 cmd에 적고 실행한 후 결과를 output에 넣는것과 같은 효과입니다
begin
output = `#{str}`
rescue
output = "처리하지못하는 명령어가 들어왔음"
end
client.write(output)
client.flush
client.close
end
서버를 켠후 클라이언트를 켜고 dir를 적고 전송해보시면 됩니다
`#{str}`
인 이유는
`str`이라고 적으면 str이라는 명령어를 실행하지 str에 들어있는 문자를 명령어로써 실행하지 않기때문입니다.