잘 받다가 갑자기 이상한 글자를 받는 경우가 생기는데요
원래는 'put'이라는 문자를 받아야 하는데
간혹 '?'라던가 '뙒' 같은 문자들을 받습니다.
보내는 쪽에서는 문제가 없는 듯하구요
도대체 뭐가 문제 일까요? ㅡㅡ;
혹시 recv에서 받는 버퍼를 초기화 하지 않으신 건 아닌지요?
그 경우 밖에 없을꺼 같은데...
Be at a right place at a right time...
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번 정도 잘 돌아가다가 이상한 문자가 떠버리네요..
용모수려 재색겸비
소스가 긴가요?
관련 소스 조금만 더 올려주시면.. ^^;
소켓프로그래밍인데요
음...클라이언트랑 서버랑 파일 주고 받는 것입니다.
근데 웃기는게 scanf를 사용하면 보내는 메시지가 깨져서 가네요
소스가 길진 않구요 간단합니다.
에구 기네요.. ^^;
컴파일해서 실행도 시켜보고 여기저기 봤는데.. 사실 잘 모르겠네요.
제대로 실행을 시키지 못해서 상황을 재현도 못해봤고..
낮에 회사일 안하고 다른 사람 소스 봐준다는 생각하기 마음도 급하고요 :)
우선 눈에 띄는 것 두가지가 있는데, c3.c에서 select 라는 변수가 있는데,
소켓함수중에서 select라는 함수가 있습니다. 지금 문제와 상관이 있는지는
몰라도 꺼림직합니다.
main() { printf("%c:%d\n",select); }
그리고, char file_name[] 변수를 scanf()에서 사용할때 &사용하지 않아야
하는데, s3.c, c3.c 두군데 모두 사용하고 있네요.
내공이 부족해서 인지, 다른 사람 코드 해석하기 힘드네요.. ^^;
저는 요까지~
저도 도저 원인을 몰라서 결국에는 걍 다른 식으로 했는데요
open read write를 사용하였는데 어디서 쓰레기 값이 들어가서
그렇게 출력되는지 알수가 없더라구요
그래서 하는수 없이
표준 입력을 사용해서 해결하였습니다.
fopen fread fwrite를 사용했어요..
중간에 fflush만 잘 사용하니 쓰레기 값 문제는 생기지 않는군요..
조언 주셔서 감사합니다.
텍스트 포맷에 대한 자세한 정보
<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]
혹시...
혹시 recv에서 받는 버퍼를 초기화 하지 않으신 건 아닌지요?
그 경우 밖에 없을꺼 같은데...
Be at a right place at a right time...
음 초기화요?
이런식으로 초기화해주는데요 ㅡㅡ;
7, 8번 정도 잘 돌아가다가 이상한 문자가 떠버리네요..
용모수려 재색겸비
소스가 긴가요?관련 소스 조금만 더 올려주시면.. ^^;
소스가 긴가요?
관련 소스 조금만 더 올려주시면.. ^^;
소스 올립니다.
소켓프로그래밍인데요
음...클라이언트랑 서버랑 파일 주고 받는 것입니다.
근데 웃기는게 scanf를 사용하면 보내는 메시지가 깨져서 가네요
소스가 길진 않구요 간단합니다.
용모수려 재색겸비
에구 기네요.. ^^;컴파일해서 실행도 시켜보고 여기저기 봤는데.
에구 기네요.. ^^;
컴파일해서 실행도 시켜보고 여기저기 봤는데.. 사실 잘 모르겠네요.
제대로 실행을 시키지 못해서 상황을 재현도 못해봤고..
낮에 회사일 안하고 다른 사람 소스 봐준다는 생각하기 마음도 급하고요 :)
우선 눈에 띄는 것 두가지가 있는데, c3.c에서 select 라는 변수가 있는데,
소켓함수중에서 select라는 함수가 있습니다. 지금 문제와 상관이 있는지는
몰라도 꺼림직합니다.
head만 제대로 인클루드 시켜주면 위 코드 동작하거든요...
그리고, char file_name[] 변수를 scanf()에서 사용할때 &사용하지 않아야
하는데, s3.c, c3.c 두군데 모두 사용하고 있네요.
내공이 부족해서 인지, 다른 사람 코드 해석하기 힘드네요.. ^^;
저는 요까지~
걍 미제 문제 크헐~
저도 도저 원인을 몰라서 결국에는 걍 다른 식으로 했는데요
open read write를 사용하였는데 어디서 쓰레기 값이 들어가서
그렇게 출력되는지 알수가 없더라구요
그래서 하는수 없이
표준 입력을 사용해서 해결하였습니다.
fopen fread fwrite를 사용했어요..
중간에 fflush만 잘 사용하니 쓰레기 값 문제는 생기지 않는군요..
조언 주셔서 감사합니다.
용모수려 재색겸비
댓글 달기