[질문] 다중소켓 프로그래밍에서 접속이 자꾸 끊기는 이유?

seventy7의 이미지

2개의 서버포트를 이용하여 다중소켓 프로그래밍을 하고 있습니다.

두개의 Listening Soket를 만들고 이 소켓은 단지
클라이언트로부터의 Accept을 처리하기 위한 용도로 사용되며
이 소켓을 통해 클라이언트와 연결처리를 하게 됩니다. 즉, 중계역활을
하는 것이지요. 최대 각각의 포트로 20명의 클라이언트가 접속을
할수 있습니다.

첫번째 포트로 클라이언트로부터 접속요구가 들어오고 나서
두번째 포트로의 접속허가를 내주면 클라이언트에서 다른 소켓을 이용하여
두번째포트로 접속하게 됩니다.

여기서 첫번째 포트는 필요할때만 잠깐씩 연결할때 사용되며 두번째 포트는
지속적으로 연결할때 사용됩니다.

즉, 첫번째포트는 제어신호를 주고받기 위해 두번째 포트는 영상데이타를
받기 위해 사용되는 겁니다. 여기서 제가 무엇을 만들고 있는지 짐작이 가시지요? ^^

그런데 여러개의 클라이언트가 두번째 포트로 연결된 상태에서 가장 먼저
접속된 클라이언트의 접속이 해제되면 두번째 포트와 연결되어 있는
모든 클라이언트와의 연결이 해제가 되는 문제가 발생하고 있습니다.
그렇다고 연결을 끊을시 모든 클라이언트의 연결을 우정 끊는건 아닙니다.
제가 몇일동안 코드를 보고 있지만 잘못된 부분을 못 찾겠네요.

이때 정상적으로 접속해제를 시켰을때 소켓단에서의 에러메세지는 EPIPE가
나오며 그외에 어떤 알수 없는 문제로 끊기는 클라이언트는 EBADF(잘못된 디스크립터)에러로 끊깁니다.

여기서 첫번째포트로도 간혹 지속적인 연결을 할경우가 있지만 위에서의
두번째포트에서처럼 문제는 없습니다.

도저히 왜 이런증상이 나오는지 이해가 안갑니다.
많은 분들의 조언을 부탁드립니다. 이것때문에 벌써 3일정도가 지났네요.

불량도ㅐㅈㅣ의 이미지

소스를 모르니..ㅡ.ㅡ

문근영 너무 귀여워~~

익명 사용자의 이미지

SIGPIPE로 검색해보세요.
상당히 자주 나오는 질문입니다.

오류잡으시길를 :)

익명 사용자의 이미지

alsong~ wrote:
SIGPIPE로 검색해보세요.
상당히 자주 나오는 질문입니다.

오류잡으시길를 :)


질문은 요지를 잘못 파악했네요.. ㅈㅅ :oops:
seventy7의 이미지

제가 너무 질문을 잘못한것 같네요.
위의 소켓프로그램쪽으로는 아무 이상이 없었으며
단지 다른 부분의 장치를 액세스하는 부분에서
꼬이는 문제였습니다.

참 허탈하더군요.

제글을 읽고 고민을 조금이라도 하셨던 분들께 죄송하며
감사드립니다. ^^

댓글 달기

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