그냥 읽기 파일에서 바이트 및
int size;
unsigned char buffer[SOME_REASONABLE_SIZE];
size = read(fd, buffer, sizeof(buffer));
if (size == -1)
aReadErrorHandleIt();
if (write(sockfd, buffer, size) == -1)
aWriteErrorHandleIt();
할 소켓에 기록 즉
int fd = open(localFileName, O_RDONLY);
if (fd == -1)
errorFileCantBeOpenedForReadingAbortThis();
를 읽는 open()
이
열고 로컬 파일을 이것은 모든 데이터가 기록 될 때까지 반복됩니다. 서버 측에서
, 당신은 아마 put
명령 또는 사용자가 지정한 수있는 몇 가지 사용자 정의 명령을 통해 지정된 파일에 데이터를 작성해야합니다. 물론 먼저 파일 쓰기가 파일을 시작하고 쓰기 위해 열려 있음을 나타내는 내용과 함께 대상 파일 이름을 서버에 보내야합니다.
서버에서 클라이언트에게 쓰기가 시작될 수 있음을 알리고 클라이언트가 보낼 때까지 쓰기가 시작되어 모두 보내 졌음을 나타낼 수 있으면 서버가 파일을 닫을 수 있습니다.
이 질문은 파일과 그 내용의 차이점을 이해하지 못한다는 것을 의미합니다. 바이트 인 파일 내용을 보내려고합니다. –
그래서 그냥 send 함수를 사용합니까? 방법? – terminator847
서버가 HTTP, FTP (etc ...)를 사용하는 경우 [libcurl] (http://curl.haxx.se/libcurl/)과 같은 HTTP 클라이언트 라이브러리를 사용해야합니다. 당신의 질문은 운영체제마다 다름을주의하십시오 (표준 C11은 소켓에 대해 알지 못합니다) –