다중화 서버에서 서버 소켓 에러가 날 원인이 이것말고도 더 있을가요?

ehaakdl의 이미지

다중화 서버에서 서버 소켓이 에러가 날 원인이 상대방에서 해제 햇을때 빼고 더 있을가요?

서버 소켓을 select로 관리하는데 다른 서버 소켓이 에러가 날 경우를 대처할 코드를 짤려고 햇는대 막상 에러가 날 상황을 생각해 봤을때 상대방과의 연결이 끊켯을때 빼고는 없을거 같습니다.

하지만 제가 모르는 상황이 있지 않을가 해서 이렇게 질문 드립니다.

그리고 여러 소켓 통신을 짤때 주의할점 같은 팁도 알려 주시면 감사하겠습니다.

shint의 이미지

GetLastError function
https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms679360(v=vs.85).aspx

WSAGetLastError function
https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms741580(v=vs.85).aspx

CException
try catch 등도 함께 사용해서 확인 될 수 있습니다.

리눅스 로그 확인'으로 구글에서 검색해보면. 이런 글이 보이네요.

Linux에서의 Error 발생시 확인.
https://kldp.org/node/81282

[Linux Log File] 리눅스 로그파일 종류 및 분석
http://blog.naver.com/PostView.nhn?blogId=kdi0373&logNo=220522832069&parentCategoryNo=&categoryNo=19&viewDate=&isShowPopularPosts=true&from=search

리눅스 서버의 로그 파일을 체크
http://princessbbo.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%84%9C%EB%B2%84%EC%9D%98-%EB%A1%9C%EA%B7%B8-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%B2%B4%ED%81%AC

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

Necromancer의 이미지

님말씀대로 정말로 연결이 끊어지는 경우는 단순한 편이고요.

- 연결은 됐지만 데이터를 받아야 할 때 1) 안주고 연결을 그대로 유지하는 경우 2)주긴 하는데 약속된 프로토콜과 안 맞는 걸 주는 경우 3) 일부만 주고 연결을 그대로 유지하는 경우
=> 그냥 끊어지는 것보다 이런 경우가 더 많습니다.

- 권한문제로 네트워크 관련 시스템콜 사용 못하거나 소켓 fd를 못만들거나 하는 경우

- 기타 시스템 문제
ex) 파일 다량으로 열여서 프로세스의 fd를 다 쓴 상태에서 외부에서 연결 들어와사ㅓ accept() 해야 하는 경우라면 더이상 소켓 fd를 못만드니 에러 나겠죠.

- 도메인이용 접속시 도메인을 IP로 전환하는 DNS resolving에서 발생하는 에러 (gethostbyname() 등에서 발생)

Written By the Black Knight of Destruction

댓글 달기

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