socket 관련...

익명 사용자의 이미지


리눅스상에서 서버가 하나가 돌구 있습니다.. 그냥 평범한..
select를 이용해서 항상 리시브를 대기하고 있다가 메세지가 들어오면 처
리하는 방식입니다.

클라이언트는 윈도 프로그램인데요.. 처음에 connect을 해서 쓰다가
connection은 유지한채 그냥 오래 (약 2시간 이상) 두면 소켓이 자동으로
끊기나요? 서버에서 netstat로 보면 연결되어 있는데.. 아무 메세지도 안
날라가구.. 클라이언트 프로그램을 닫아두 여전히 netstat로 보면 연결이
되어 있네요..

얼케 된건지.. 도움 부탁 드립니다.

익명 사용자의 이미지

http//kldp.org/Translations/html/Socket_Programming-
KLDP/Socket_Programming-KLDP.html
죄송요... 도움이 될까해서요...^^
수고하세요..
나도 곳 소켓을 세계로 갈려고 준비중이라서요..^^

익명 사용자의 이미지

안녕하세요

음.....접속을 끊어도 연결이 되어있다고 나오는 것은
클라이언트 쪽에서 커넥션 클로즈 패킷을 날려주지 않아서 그런겁니다
이건 application 차원에서 해주는게 아니라 커널에서 해주는거라
신경 안쓰셔도 됩니다만 작업관리자 에서 강제종료 했다던지
랜 케이블을 뽑았다던지 컴터의 전원을 내렸다던지 하면
패킷이 안갑니다(보낼 시간이 없죠 ㅡㅡ;)
그럼 서버측 에서는 계속 연결된것 처럼 착각하고 있지만
이도 약 5분정도(소켓의 기본옵션) 신호를 기다리다가 커넥션이 끊어진것
으로 판단하고 끊어버립니다
이건 소켓 옵션에서 시간을 설정해줄 수 있습니다

익명 사용자의 이미지

;그럼 서버측 에서는 계속 연결된것 처럼 착각하고 있지만
;이도 약 5분정도(소켓의 기본옵션) 신호를 기다리다가 커넥션이 끊어진것
;으로 판단하고 끊어버립니다
;이건 소켓 옵션에서 시간을 설정해줄 수 있습니다

어떤 옵션을 쓰면 5분후에 자동으로 소켓을 끊나요? ㅋㅋㅋ

익명 사용자의 이미지

SO_SNDTIMEO 와 SO_SNDLOWAT 입니다

익명 사용자의 이미지

;그럼 서버측 에서는 계속 연결된것 처럼 착각하고 있지만
;이도 약 5분정도(소켓의 기본옵션) 신호를 기다리다가 커넥션이 끊어진것
;으로 판단하고 끊어버립니다
;이건 소켓 옵션에서 시간을 설정해줄 수 있습니다

SO_SNDTIMEO와 SO_SNDLOWAT가 소켓을 닫는다고요? ㅋㅋㅋ

익명 사용자의 이미지

빈정대지 마시고 잘못 설명했다고 생각하시면,
올바른 설명으로 정정을 해 주시죠?

그렇게 빈정되는 것은 "ㅋㅋㅋ"님께도, "현근창" 님께도,
제 3자에게도 아무런 도움이 되지 않습니다.

ㅋㅋㅋ wrote..
;그럼 서버측 에서는 계속 연결된것 처럼 착각하고 있지만
;이도 약 5분정도(소켓의 기본옵션) 신호를 기다리다가 커넥션이 끊어진 것
;으로 판단하고 끊어버립니다
;이건 소켓 옵션에서 시간을 설정해줄 수 있습니다

SO_SNDTIMEO와 SO_SNDLOWAT가 소켓을 닫는다고요? ㅋㅋㅋ

익명 사용자의 이미지

SO_LINGER 옵션도 참고하심 더욱 좋구요.

SO_SNDTIMEO, SO_RCVTIMEO은 recv, send시 time out옵션이지 기계가 아무
짓도 않하는 님의 상황과는 연관이 좀 적죠.

SO_RCVLOWAT, SO_SNDLOWAT도 마찬가지로 질문의 요지를 벗어납니다.

그리고, 님이 생각하시는 2시간을 바꾸는 것은 Kernal Compile하기 전에
는 불가능하겠죠.

댓글 달기

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