기타

[루비][네트워크] 다른 컴퓨터에서 명령어 받아서 실행후 결과 돌려주는 서버

by 자연철학의수학적원리 posted Oct 25, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

테스트용으로만 쓰길 권장합니다. 왜냐면 원격에서 명령어 받아서 실행하는것은 위험할수 있으니깐요~

 

소스

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에 들어있는 문자를 명령어로써 실행하지 않기때문입니다.