간단한 파일 송신 예제를 살펴보자. 

프로토콜이 없는 파일 송신이다.

 

//전송할 파일 개방
FILE *fp = NULL;
errno_t nResult = fopen_s(&fp, "Sleep Away.zip", "rb");
if (nResult != 0)
	ErrorHandler("전송할 파일을 개방할 수 없습니다.");

 

전송할 파일을 연다.

 

//파일송신
char byBuffer[65536];		//64KB
int nRead, nSent, i = 0;
while ((nRead = fread(byBuffer, sizeof(char), 65536, fp)) > 0)
{
	//파일에서 읽고 소켓으로 전송한다.
	//전송에 성공하더라도 nRead와 nSent 값은 다를 수 있다!!!
	nSent = send(hClient, byBuffer, nRead, 0);
	printf("[%04d] 전송된 데이터 크기: %d\n", ++i, nSent);
	fflush(stdout);
}

 

 

함수 호출을 덜하고 송신 자체를 적게 하므로 파일을 송신할때 송신하는 크기는 클수록 보통 좋다. 

위 코드에서는 64KB 만큼 송신하지만, 어느정도가 적당한지는 실제로 용량을 바꾸면서 직접 알아내야한다.

'네트워크' 카테고리의 다른 글

[네트워크] 파일 송신 개선  (0) 2025.04.20
[네트워크] 파일 수신  (0) 2025.04.20
[네트워크] TCP 장애 유형  (0) 2025.04.20
[네트워크] TCP/IP 연결의 의미  (0) 2025.04.20
[네트워크] select  (0) 2025.04.17

+ Recent posts