네트워크 프로그램에서 랜선 뽑았을때 이벤트는 무엇인가요

linuxs의 이미지

네트워크 프로그램을 제작하고 있습니다.
서버에 연결하는 프로그램인데 서버에 연결 된 상태에서 서버에서 랜선을 뽑으면 서버(윈도우프로그램)에서는 이벤트가 발생한다고 합니다. 이 때 관련 연결된 소켓을 다 죽인다고 합니다.
이 때 다시 연결을 해야 하는데 클라이언트에서는 랜선이 뽑여있었다는 사실을 모릅니다. 어떻게 랜선이 뽑였있는지 알 수 있나요?
select 관련 해서 찾아봤는데 잘 모르겠습니다.
다시 정리하자면 클라이언트에서 랜선이 뽑여있을때를 알아서 다시 연결을 할려고 합니다.
조언 부탁드립니다.

지나가는새의 이미지

ssehoony의 이미지

자신의 머신의 랜선 연결 유무는 지나가는새님께서 알려주신
내용을 보면 도움이 되겠는데
질문의 보니 자신의 머신이 아닌 다른쪽 머신의 랜선 상태를
알수 없다는게 문제인것 같군요. 맞나요? ^^

그렇다면 keepalive 로 검색해 보세요.

그리고 간단히 해결법을 알려드리면
polling 이라고 하는건데
상대에게 일정 간격으로 메시지를 보내고 그에 상응하는 응답이 없다면 끊긴것으로 간주하는 겁니다.
혹은
상대에게 일정 간격으로 서로 메시지는 보내고, 받는 쪽에서는 일정 간격으로 안들어오면 끊긴것으로 간주하는거죠.

가령 서로 10초 간격으로 dummy 패킷을 보내고 수신측에서는 dummy 패킷이 30초 동안 수신이 되지 않으면 끊긴것으로 간주.

linuxs의 이미지

네 감사합니다. keepalive 기법을 이용하면 되겠네요.
이미 소켓옵션으로 할 수 있다고 합니다. 그런데 2시간정도 후에 알 수 있다고 하네요.. 그래서 그냥 체크 데이타 보내고
일정시간동안 응답없으면 다시 연결을 시동하도록 하겠습니다.
조언 감사합니다.

꿈은 이루어진다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.