Windows<->Linux socket 통신할 때...

frommars의 이미지

Windows asyncsocket을 만들고
linux에서 소켓을 만들어서 통신하는데

Windows쪽에서 연속적으로 send할 경우
packet drop이 발생하는군요.

getsockopt로 수신버퍼크기를 체크해봤는데
패킷사이즈에 비해 버퍼크기가 충분히 큰데도 패킷이 드랍이
발생합니다.

이에 대한 해결책이 있을까요?

속도가 중요해서 연속적인 send사이에 어떤 메세지 교환은
어려울 것 같습니다.

감사합니다.

고물의 이미지

소스를 좀 보고싶군요...

TCP를 사용하는데 패킷 드랍이 일어나도 어느정도 로우레벨단에서

재전송을 해주는 것으로 알고 있는데요..

패킷 드랍이라.. 패킷드랍은 하드한 것인데.. UDP를 사용한다면 몰라도

어느정도까지는 보정해 줄겁니다. 악조건이 아니라면..

혹시 연속으로 데이터를 보낼 경우 서버 단에서 그 응답시간을 얼마로 하셨는지요?

non block mode가 아닌 경우에는 받은 패킷의 내용만 가져옵니다.

종료점에 대한 한계선을 지정할 필요가 있을 것 같은데요.. 제일 처음에 얼마의 데이터를 줄 테니 받아라는 식이나.. 그러면 그것이 만족할때까지 계속 읽거나..
아니면 끝나는 코드를 정의해서 만약에 그 코드이면 끝이다라는 것이나..

그런 것이 없다면 일정 시간동안 계속 응답이 없을 경우에 거기까지 받는다거나..

혹시 걍 read로 데이터가 도착하기 전에 읽어서 결과값이 없는 것은 아니구요?

그렇지 않겠어요?

zienie의 이미지

반대의 경우이긴 합니다만.

linux(서버) -> XP, 2000(클라이언트) 으로 패킷을 보낼 때
서버 측에서 데이터를 쏘고 클라이언트로 부터 잘 받았다는
체크 없이 그냥 소켓을 닫을 경우 가끔 패킷 드랍이 일어납니다.
win98, ME에서는 나타나지 않는 현상입니다.

해결하는 방법은
패킷을 받는 측에서 충분히 데이터를 받을 시간을 주거나
클라이언트가 패킷을 다 받은 후 닫을때 까지 서버측에서도
열고 기다리는 방법이 있습니다.

역으로 적용해보시는건 어떨까 해서 올려봅니다.

##########################################################
넘어지는건 아직 괜찮다.
하지만 넘어질때마다 무언가를 주워서 일어나자.

댓글 달기

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