서버/클라이언트 통신을 잘 하다가 갑자기 안될때(에러도 안남 ㅠㅠ)

lansea의 이미지


클라이언트가 서버에 접속해서 데이터 요청을 하면 서버에서는 스트림을 보냅니다.

클라이언트는 스트림을 받다가 자기 버퍼가 거의 차면 서버에 잠시 대기하라는 메세지를 보내서 스트림을 잠시 멈추게 합니다

중지된 시간은 거의 1분 안되는 시간이구요
이 시간동안 클라이언트는 자기가 살아있음을 알리는 메세지를 주기적으로 10초 마다 보냅니다.

거의 데이터가 2G가 정도되는데요.. 한 1/3 정도 전송했을 때
잠시 전송을 중지 요청하고...클라이언트에서 살아 있다는 메세지를 2~3번 받고 나면 서버에 아무 메세지가 안옵니다.

클라이언트에서는 정상적으로 메세지를 보냈고


서버에서도 에러가 나는게 아니라 설정해둔 메세지 안 받은 시간이 너무 길어져서 클라이언트와의 접속을 끊어버리는 거구요
데드락이 걸리는것도 아니구요.

클라이언트에서는 계속 정상적으로 메세지를 보내고 있습니다.

그리고 메세지를 못받는 위치가 거의 비슷합니다. 그렇다고 데이터에 이상이 있는건 아니구요
에러가 나는게 낫지.. 에러도 안나니까 답답하네요

이거 때문에 일주일 동안 너무 힘듭니다.. 혹시 이런 현상 보시거나 원인 아시는분..?

litdream의 이미지

해보셨겠지만, 혹시나 해서..
버퍼때문에 잠깐 멈출때, 양쪽에서 모두 tcpdump 한번 떠보셨나요?

삽질의 대마왕...

삽질의 대마왕...

lansea의 이미지


tcpdump 생각은 못해봤네요
한번 해봐야 겠어요..
답글 갑사합니다 ^^

-----------------------------------------------
I'm free to be whatever I, whatever I Choose

-----------------------------------------------
I'm free to be whatever I, whatever I Choose

xphone의 이미지

제 생각엔 어디선가 가정을 하거나, 어디선가 오류가 발생했는데 못 찾는 것 같습니다.

다시 한번 사용하는 전체 함수들의 메뉴얼(man page 등)을 다시 한번 보시고,
모든 경우의 수를 다시 생각해보길 바랍니다.

소스 코드가 있다면 도움을 줄 수 있겠지만.
지금 상황에서 도움을 드릴만한 것은 다시 한번 차근 차근 살펴보라는
말이네요. 디버깅도 중요하지만 오류가 생기기 전에 모든 것을 정확히
작성하는 습관이 더 중요합니다.

lansea의 이미지


원인을 찾았습니다.
tcpdump, wireshark로 확인결과 서버에서는 동작한건 맞구요.. (실제로 서버에 메세지가 안온거였습니다)
클라이언트 측에서 문제가 있었습니다.
클라이언트 측에서 아직 디버깅 중이구요. 어쨌든 제가 서버 파트라~ 맘이 놓이네요..

답변 주신 분들 감사합니다
(제가 리눅스한지 얼마 안되어서 wireshark가 리눅스에서 되리라고 생각을 못했네요 ..
알았으면 해보는건데..)

-----------------------------------------------
I'm free to be whatever I, whatever I Choose

-----------------------------------------------
I'm free to be whatever I, whatever I Choose

lansea의 이미지


원인을 찾았습니다.
tcpdump, wireshark로 확인결과 서버에서는 동작한건 맞구요.. (실제로 서버에 메세지가 안온거였습니다)
클라이언트 측에서 문제가 있었습니다.
클라이언트 측에서 아직 디버깅 중이구요. 어쨌든 제가 서버 파트라~ 맘이 놓이네요..

답변 주신 분들 감사합니다
(제가 리눅스한지 얼마 안되어서 wireshark가 리눅스에서 되리라고 생각을 못했네요 ..
알았으면 해보는건데..)

-----------------------------------------------
I'm free to be whatever I, whatever I Choose

-----------------------------------------------
I'm free to be whatever I, whatever I Choose

댓글 달기

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