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 명령을 서버에 보내서 결과를 받아옴)