유닉스에서 C의 소켓을 통해 쓰거나 읽어야하는 바이트 수에 대해서는 의심의 여지가 있습니다. 나는 1024 바이트를 보내는 데 익숙해졌지만, 짧은 문자열을 보낼 때 이것은 때로는 너무 많이 발생합니다.소켓에 몇 바이트의 읽기/쓰기를해야합니까?
파일에서 문자열을 읽었는데이 문자열이 몇 바이트인지 알지 못합니다. 매번 바뀔 수 있으며, 10, 20 또는 1000 일 수 있습니다. 나는 단지 < 1024임을 알고 있습니다. 따라서 코드를 작성할 때 클라이언트 측에서 읽을 바이트 크기를 알지 못합니다 (서버에서 strlen()
을 사용할 수 있음). 그래서, 파일에서 읽은 문자열의 길이에 관계없이 항상 최대 바이트 수 (이 경우 1024)를 읽는 유일한 해결책입니까?
read(socket,stringBuff,SIZE);
SIZE
10 대신 내가 10 바이트 문자열을 읽으려면 1024의 경우 더 나은되지 않을 것 :이 코드 예를 들어
?
'recv()'는 소켓을 통해 수신 한 바이트 수를 반환합니다. – timrau
다른 질문을 광고하는 데 하나의 질문을 사용하지 마십시오. –
@timrau 네, 나도 알아, 그래도 읽을 줄 알아.하지만 내가 틀렸다고 생각하지 않는다면, read 호출을 할 때 read (socket, stringBuff, SIZE)와 같은 것을 써야하고 SIZE에서 읽으려는 문자의 수. 내가 10 문자 문자열을 읽는다면 크기가 1024 대신 10 인 경우 더 좋지 않겠는가? – testermaster