Server 가 Client 에게 send() 함수로 어떤 문자열을 보내고 Client 는 if() 를 사용하여 받은 문자열이 Hello 와 같은지 확인하고 Hello 와 같다면 특정 코드를 실행하고 싶은데 방법이 없을까요?
계속 찾아봐도 이해를 못하겠네요 ...
1. 뭘 찾아봤나요?
2. 뭐가 이해가 안되나요?
non-trivial한 토픽에 대해서 이렇게 밑도 끝도 없이 와일드카드 식으로 질문을 던지면, "좋은 강좌 찾아서 천천히 따라해보세요" 정도의 답변만 달리게 된답니다.
하지만 오늘은 즐거운 주말이니 평소보다 조금 더 관대해질 수도 있을 것 같네요. 코드입니다.
SERVER_ADDR = ("localhost", 10000) def server(): from socketserver import TCPServer, BaseRequestHandler class HelloServer(BaseRequestHandler): def handle(self): self.request.send("Hello".encode('utf-8')) try: with TCPServer(SERVER_ADDR, HelloServer) as server: server.serve_forever() except: pass def client(): from socket import create_connection s = create_connection(SERVER_ADDR) if s.recv(10).decode('utf-8') == "Hello": print("I am connected to a HelloServer!") def main(): from sys import argv if "server" in argv: server() else: client() if __name__ == '__main__': main()
모든 에러 케이스를 다 잘 처리한다고 말할 수는 없을 거에요. 문자 그대로 common case에서만 잘 동작하는 코드입니다.
하지만 소켓 프로그래밍의 꽃이 바로 에러 케이스를 처리하는 거라서요. 그 부분은 연습문제로 남기겠습니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
1. 뭘 찾아봤나요?
1. 뭘 찾아봤나요?
2. 뭐가 이해가 안되나요?
non-trivial한 토픽에 대해서 이렇게 밑도 끝도 없이 와일드카드 식으로 질문을 던지면,
"좋은 강좌 찾아서 천천히 따라해보세요" 정도의 답변만 달리게 된답니다.
하지만 오늘은 즐거운 주말이니 평소보다 조금 더 관대해질 수도 있을 것 같네요.
코드입니다.
모든 에러 케이스를 다 잘 처리한다고 말할 수는 없을 거에요. 문자 그대로 common case에서만 잘 동작하는 코드입니다.
하지만 소켓 프로그래밍의 꽃이 바로 에러 케이스를 처리하는 거라서요. 그 부분은 연습문제로 남기겠습니다.
댓글 달기