process 잠시 대기 상태로 두는 방법좀 알려주세요

sysmoon의 이미지

dhcp flow에서 인증을 구현하고 있습니다.
즉 인증이 되면 dhcp 의 4가지 flow 에서 최종적으로 ACK를
날리고 인증이 안되면 NAK를 날리는 데모입니다.

client                                     dhcp server

                   discover(1)
            -----------------------> 
                                                *인증과정
                     offer(2)
            <-----------------------

                   Request(3)
             ------------------------>

                ACK(4) or NAK(4)
             <------------------------

server가 discover(1) 메세지를 받고 인증구현에 들어갑니다.
인증구현은 실제 자바로 짠 서버에서 동작을 하게 됩니다.
인증의 dhcp server 소스는 discover 메세지를 받고 성공 실패 여부를 파일에서 읽어서 알게 됩니다.
성공하면 그 다음 메세지 플로우로 넘어아고 실패하면 NAK를
날리게 됩니다.

그럼 dhcp server source에서는 인증하는 동안안에는
offer(2) 메세지를 보내면 안되는데 그 동안 대기시키는 방법을
잘 모르겠습니다. while(1) 문으로 돌리면 부하가 크고....
어떠한 방법을 써야 하나요?

인증 서버는 자바에서 서버소켓으로 구현해서 인증과정을 다 마친후 그 결과를 파일에다 써주거든요.. dhcp server는 그 파일을 통해서 인증의 실패여부를 알게 되고요...

좋은 방법이 있으면 쫌 알려주세용~~ ^^
참고로 dhcp 는 www.isc.org 에서 다운로드 받은 open source입니다.

익명 사용자의 이미지

인증 성공/실패 메시지를 읽는 API 및 그 부분의 코드를 보여주세요.

lovemyin의 이미지

실제로 데이터를 받는 부분과 offer(2) 메시지를 보내는 부분이 서로 다른 프로세스로 구성되어 있다는 말씀이신지...?
아님 스래드 상태로 서로 구분되어 있는지??

/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/

frowt의 이미지

참조한 소스가 뭔지는 안봐서 모르겠으나
대충 생각하기에 sync socket 으로 처리되는것 같군요. 이 가정 하에서 말씀드리면,
while(1) 안에 sleep or usleep을 적당히 주고, 파일 체크도 하고 하면 되지 않을까 생각이 되네요.
파일이 있으면 offer(2) 를 하고 while을 빠져나가면 안될까요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.