소켓프로그래밍에서요 read나 recv로 메시지를 받을때

jamongx의 이미지

잘 받다가 갑자기 이상한 글자를 받는 경우가 생기는데요

원래는 'put'이라는 문자를 받아야 하는데

간혹 '?'라던가 '뙒' 같은 문자들을 받습니다.

보내는 쪽에서는 문제가 없는 듯하구요

도대체 뭐가 문제 일까요? ㅡㅡ;

File attachments: 
첨부파일 크기
Package icon 부탁해요.zip4.37 KB
kukuman의 이미지

혹시 recv에서 받는 버퍼를 초기화 하지 않으신 건 아닌지요?

그 경우 밖에 없을꺼 같은데...

Be at a right place at a right time...

jamongx의 이미지

char message_from_client[4];


while(1) {

         memset(message_from_client, 0,   4);
         read(clnt_sd, message_from_client, 4);  또는
         recv(clnt_sd, message_from_client, 4, 0);
}

이런식으로 초기화해주는데요 ㅡㅡ;

7, 8번 정도 잘 돌아가다가 이상한 문자가 떠버리네요..

용모수려 재색겸비

ifyou의 이미지

소스가 긴가요?

관련 소스 조금만 더 올려주시면.. ^^;

jamongx의 이미지

소켓프로그래밍인데요

음...클라이언트랑 서버랑 파일 주고 받는 것입니다.

근데 웃기는게 scanf를 사용하면 보내는 메시지가 깨져서 가네요

소스가 길진 않구요 간단합니다.

댓글 첨부 파일: 
첨부파일 크기
Package icon 0바이트

용모수려 재색겸비

ifyou의 이미지

에구 기네요.. ^^;

컴파일해서 실행도 시켜보고 여기저기 봤는데.. 사실 잘 모르겠네요.

제대로 실행을 시키지 못해서 상황을 재현도 못해봤고..

낮에 회사일 안하고 다른 사람 소스 봐준다는 생각하기 마음도 급하고요 :)

우선 눈에 띄는 것 두가지가 있는데, c3.c에서 select 라는 변수가 있는데,

소켓함수중에서 select라는 함수가 있습니다. 지금 문제와 상관이 있는지는

몰라도 꺼림직합니다.


main()
{
     printf("%c:%d\n",select);
}

head만 제대로 인클루드 시켜주면 위 코드 동작하거든요...

그리고, char file_name[] 변수를 scanf()에서 사용할때 &사용하지 않아야

하는데, s3.c, c3.c 두군데 모두 사용하고 있네요.

내공이 부족해서 인지, 다른 사람 코드 해석하기 힘드네요.. ^^;

저는 요까지~

jamongx의 이미지

저도 도저 원인을 몰라서 결국에는 걍 다른 식으로 했는데요

open read write를 사용하였는데 어디서 쓰레기 값이 들어가서

그렇게 출력되는지 알수가 없더라구요

그래서 하는수 없이

표준 입력을 사용해서 해결하였습니다.

fopen fread fwrite를 사용했어요..

중간에 fflush만 잘 사용하니 쓰레기 값 문제는 생기지 않는군요..

조언 주셔서 감사합니다.

용모수려 재색겸비

댓글 달기

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