socket 프로그래밍 초보 질문.. send 에러에 대해서..

psjcap의 이미지

socket 프로그래밍을 하는데..
주기적으로 어떤 작업을 해야하는 관계로 block이 될 수가 없어서..
send. recv 하기 전에 select 함수를 통해서 send가 가능한지 확인하고..
send, recv를 수행하도록 하였습니다..

그런데 랜선을 뽑은 경우 꽤 오랜 시간 네트웍이 끊긴지를 모르더군요..
어떤 때는 실제로 랜선을 다시 꼽을 때 까지 connect이 유지되는 경우도 있더군요..

1. 왜 send, recv 에러를 감지하는데 시간이 오래 걸리나요..??
2. 랜선 뽑은걸 바로 알 순 없나요..?? (driver 레벨에서 처리한다던가 하는거 말고..)

sharefeel의 이미지

TCP 커넥션이란게 어차피..
IP:PORT ------ IP:PORT
의 매핑을 각 호스트에서 저장하고 있는 것이 불과합니다.
따라서 하드웨어 레벨에서 fail이 발생한 것에 대해서 완전히 detect할 수 없습니다.

필요한 기능은 구현하시려면..
꾸준히 상대노드와 HeartBeat 메시지를 주고 받으며
살아 있는 지를 체크해야 합니다.

===============
Vas Rel Por

blee의 이미지

하드웨어에서 체크하는 것이 아마도 heartbeat라고 하는데
이것은 제가 알기론 2시간 정도 간격으로 체크 한다고 알고 있습니다.
(시간은 틀릴수 있습니다. 아무튼 매우 긴 시간일 겁니다. 프로그램에서
10분만 넘어가도 괘 긴 시간 아닌가요?)
이 시간을 지나면 끊김을 알 수 있다는 것이죠..

상대편에서 connect 를 유지 하고, 네트웍 선을 뽑은 경우나
파워를 갑자기 내려 버리면, 나는 그것을 모르죠.. 저 heartbeat로
체크해 보기 전에...

heartbeat의 시간을 조절할수 있다고 알고 있습니다만, 어떻게 하는지
기억이 안나고, 이것은 시스템에 연결된 모든 소켓에 대해 다 적용된다고
하니, 시간이 짧다면, 부하가 될수도 있겠지요

위에 분이 말씀하신것 처럼 Alive 상태를 체크해 보는 소프트웨어적인 루틴을 구현하시는게 아마도 맘에 편하실것 같습니다.

댓글 달기

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