기타

[루비][네트워크][GUI] 서버에 명령어 보내서 실행결과 얻는 클라이언트

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

단축키

Prev이전 문서

Next다음 문서

ESC닫기

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

require 'socket'
require 'tk'


#메시지를 보내는 GUI 클라이언트
#텍스트박스에 글을 적고 버튼을 누르면 그 문자열을 서버에 보냄
#받은 내용을 출력

#localhost는 서버ip적는 곳(서버가 자신의 컴퓨터이니 localhost) 2000은 포트번호

$server = TCPSocket.new('localhost',2000)


def my_button_func

#적어둔 글자 얻어와서
    str = $edit.get("1.0","end")

#서버에 보내기 flush잊지 마세요~
    $server.write(str)
    $server.flush
#1000은 충분히 큰 숫자, 미리 서버만들때 생각해 둬야함
    result = $server.recv(1000)

#결과가 한글일때 글자가 깨지는 현상이 있을수 있음 이것은 서버에서 실행한 결과가 utf-8이아니라 euc-kr라서그럼.

#그래서 결과물의 인코딩 바꿔줘야함
    result = result.force_encoding('euc-kr')
    #출력
    Tk.messageBox("message"=>result)
end

root = TkRoot.new


#텍스트 편집 상자 만들기
$edit = TkText.new do
#가로 30칸
    width 30
#세로 1칸 크기
    height 1
    pack
end


#버튼 만들기
$button = TkButton.new do
    text "전송"
    command(proc{my_button_func})
    pack
end


Tk.mainloop

 

스크린샷:(ipconfig 명령을 서버에 보내서 결과를 받아옴)

1.PNG