윈됴소켓.. -_- +

towngo의 이미지

음.. 요즘 간단한 게임을 만들고 있는데.. 클라이언트쪽 소켓이 계속 말썽이네요.. 서버는 리눅스구 클라이언트는 윈됴인뎅.. 리눅스로 만든 클라이언트는 문제가 없는데.. 아 물론 로컬에서 테스트하지 않고 리모트로 해서 윈됴랑 같은 환경에서 했는데 이렇쿤요.. -_- +

며칠전에 질문했었는데.. send() 후 바로 다음 라인에서 close()를 하면 윈도쪽에선 못 받네요.. 첨엔 서버에서 패킷을 그냥 비워버리는줄 알았는데.. 리눅스로 클라이언트를 만들어 해 보니 잘 들어오는군요.. 헐..

클라이언트가 이런이런 이유로 종료된다구 알려주고 소켓을 끊는건뎅..
음.. 클라이언트가 종료된다구 받으면 소켓을 끊어야 하낭.. 떱..

윈됴는 잘 모르는디.. 이건 경우 얼케 해야 할까요..
간단한 해결은 send후 sleep을 거는건뎅.. 그렇게 하면 어떤 조건에 걸린 플레이어들이 많을 경우 게임이 잠시 멈추는..... -_-;

혹시 어떤 아이디어가 있으시면 리플 좀.. ^^a

jemiro의 이미지

send() 를 서버쪽에서 하는지 클라이언트 쪽에서 하는지 명시가 안되어 있군요.
뭐 어느쪽이든지 비슷하겠지만 서버쪽에서 send하고 close()를 한다고 생각하면,

아래 방법으로도 한번 테스트 해보세요 될지도 모르니...
첫번째 방법은 send후 close를 하는것이 아니라
shutdown으로 write만 halt close를 하는것 입니다.
자세한 것은 관련 문서나 서적을 찾아보시면 될것이고...

두번째 방법은 서버쪽에서 send 한다는 상황에서
서버쪽에서는 send() , recv(), close()
클라이언트 recv(), send(), close()
위 순서로 서버쪽에서 전송후 응답을 오면 close 하고,
클라이언트에서는 수신후 수신했다는 응답을 보내고 close() 호출

위에 두가지 방법으로 테스트 해보시고 그래도 안되면,
다른쪽에 문제가 있죠. 일단 코드를 안 보고 생각해본 해결책입니다..쩝..

elecguy의 이미지

윈도와 리눅스(유닉스) 의 소켓은 비슷하지만 약간의 차이가 있더군요.
소켓 API 메뉴얼에서 shutdown() 을 살펴보세요.
다 받거나 보내기를 보장할려면 shutdown을 쓰라는 문구가 있습니다.
그럼.

폐인, 노가다 그 끝은..?

댓글 달기

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