도저히 모르겠어서 처음으로 돌아감
send(sock,buf,size,0);
으로 보내면 sock 소켓으로 buf문자열의 size만큼 가져다 보내는거고
recv(sock,buf,size,0); 함수에 도착하면
sock으로 send가 올때까지 기다렸다가 send가 옮겨온 문자열을 size만큼 읽어서 buf안에 넣는건 맞음?
도저히 모르겠어서 처음으로 돌아감
send(sock,buf,size,0);
으로 보내면 sock 소켓으로 buf문자열의 size만큼 가져다 보내는거고
recv(sock,buf,size,0); 함수에 도착하면
sock으로 send가 올때까지 기다렸다가 send가 옮겨온 문자열을 size만큼 읽어서 buf안에 넣는건 맞음?
recv(sock,buf,size,0); size 만큼 안모이면 리턴안하고 버팀
1보다 큰만큼 size보다 작은 만큼만 주기도하고 안주기도 하고
ㅎㅎㅎㅎ
젖같저..
아 SIZE만큼 안모이면 리턴안하고 버티는구나;
1보다 큰만큼 size보다 작은 만큼만 주기도 하고 안주기도 한다는건 무슨말씀?
그리고 아까 써주신 예제에서보면 정수를 소켓으로 보내던데;; 소켓은 다 문자열 아니였어여?
어짜피 가는건 메모리에있는 값이니까여
캐스팅하거나 memcpy로 복사해서 넣은뒤 보내면되영
512 로 리턴했는데 돌아온값은 448 만 돌아왔을수도있어요
보내는 시점 받는 시점 os로 올리는 시점다 os 맘이라
아 저 알거같아요 한번해볼게요
정량씩 주고받으면서
파일의 끝에 널을 박으면 될거같아요
전체 파일 길이에서 recv 의 리턴값만큼 빼면서 반복분 돌며 받으면되영
저 근데 리턴값은 문자열 길이라고 생각하고 있었는데
recv가 내가 정해준 size 인자만큼 문자열을 다 채울때까지 리턴을 안한다면
256으로 정해둬으면 무조건 리턴값은 256이 되야하는거 아니에요?
그게 좀 햇갈리는뎅;
더 적게 들어오기도해영
그게 실제 받아진값이고
아그럼 recvn에 넣는 이유가 실제로 얼마만큼 들어왔는지 확인하기 위해서에요?
그럼 저는 반복문안에서 클라에선 파일이 끝날때까지 계속 보내고, 서버는 recvn으로 걸러서 total이 사이즈만큼 될때까지 받기만 하면 되는건가요?
네네
한번 해볼게요 감사합니다
ㅇㅇ//되야->돼야 (되어 = 돼임) [리듬 맞춤법 봇♬]
시크//되영->돼영 (되어 = 돼임) [리듬 맞춤법 봇♬]
ㅇㅇ//아니였->아니었 (아니었 아니에요 아니어도 아니어서는 예외) [리듬 맞춤법 봇♬]
ㅇㅇ//에요->예요 (받침 있으면 이에요 없으면 예요 이로 끝나면 받침 없으므로 예요 요 떼서 말 되면 에요 아니에요는 예외 인명엔 예요(예 : 길동이예요) 성까지 쓰면 이에요(예 : 홍길동이에요)) [리듬 맞춤법 봇♬]