루비를 이용한 TCPSocket 프로그래밍 예제입니다.
손에서 잠시 멀어지다 보니 이런것 하나 짜는데도 혼자 덜덜덜 이였네요.
역시 개발자는 개발을해야지 이거 감떨어지면 끝장입니다. 열심히 열심히!!

#!/usr/local/bin/ruby

require 'socket'

port = 80                           # Default HTTP port
list = File.new("/neouser.txt", "r")

while(line = list.gets)
    host = line.strip()
    path = ARGV[0].strip()

    if (host != nil and path != nil) then
        puts "---- remove cache #{host}#{path}----------------------------------"
        #request = "PURGE #{path} HTTP/1.0\r\nHOST: #{host}\r\n\r\n"
        request = "PURGE #{path} HTTP/1.0\r\nHOST: neouser.tet.url \r\n\r\n"

        socket = TCPSocket.open(host,port)  # Connect to server
        socket.print(request)               # Send request
        response = socket.read              # Read complete response
        puts response
    end
end



코드가 쉽다고 웃기게 보면 안됩니다.
이 코드에는 숨은 진실의 라인이 하나 있습니다.
TCPSocket의 경우 그 대상서버군에서 read 결과를 잘 못받는 경우가 있습니다.
해결책은 readline으로 중간중간 산출되는 결과를 받고 싶으면 그때마다 readline을 적여줘야 합니다.

        socket = TCPSocket.open(host,port)  # Connect to server
        socket.write(request)               # Send request
        socket.readline           # Read complete response
        socket.write("quit\r\n")            # Send request
        result = socket.readline           # Read complete response

몇줄 안되지만 결코 웃긴 코드는없습니다.





글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!