보낸 패킷이 다른 쪽 끝에서 수신 될 때까지 winsock의 send 함수 블록을 사용할 수 있습니까?winsock의 send 함수 블록을 가지고 있습니까?
내 최종 목표는 동일한 연결에서 작은 1kb 패킷을 보낼 수있는 동안 5-20MB 파일을 보낼 수있게하는 것입니다. 그래서 나는 수신기가 패킷을 수신 할 때까지 차단한다고 생각했다. 그렇게하면 다른 작은 패킷이 대기열에 넣어 져있어 큰 파일의 나머지가 전송 될 때까지 기다리지 않아도됩니다.
큰 패킷을 보낸 다음 작은 패킷을 보내는 경우 tcp는 여전히 큰 패킷을 보내는 동안 작은 패킷을 보냅니 까? – user230821
TCP는 단지 스트림입니다. 한 번의 send() 호출을 수행하면 다른 쪽에서 해당 데이터를 읽는 데 여러 번의 recv() 호출이 필요할 수 있습니다. 반대로 여러 개의 send() 호출을 병합하고 하나의 recv() 호출로 읽을 수 있습니다. "패킷"을 보내거나 패킷/메시지가 수신되면 응답을 받으려면 TCP 위에 자체 프로토콜을 만들어야합니다. – nos
정말입니까? 나는 tcp의 요점이 당신을위한 그런 종류의 관리를한다고 생각했다. 나는 한 번에 여러 개의 패킷을 보내는 시간에 수신되었을 때 1로 병합됩니다. – user230821