Мне нужно настроить команду TYPE; режим либо «Я» (для изображения), либо «А» (для ASCII). Чтобы проверить режим изображения / двоичного файла, попробуйте перенести файл изображения jpg / png с FTP-сервера. (создать собственный FTP-сервер)
Однако я не уверен, как это сделать, код ниже. Я в значительной степени скопировал команду stor / put, которая работает
В настоящее время, когда я пытаюсь получить изображение от локального хоста, полученное изображение имеет размер 0 байт.
Также обратите внимание: bytes = recv (ns, & receive_buffer [n], 1, 0); // получение байта за байтом ... находится в моем коде скелета / запуска.
...
if(strncmp(receive_buffer,"TYPE",4) == 0){ //attempt
int bytesRecieved1 = 0;
char codeStr[250];
sscanf(receive_buffer,"TYPE %c\r\n",codeStr);
char code = codeStr[0];
char tempBuff[SEGMENT_SIZE];
memset(tempBuff,0, sizeof(tempBuff));
int _bytes1 = 0;
switch(code){
case 'I': //
sprintf(send_buffer, "200 Switching to Binary mode\r\n");
while (1){
if(active == 0) {
_bytes1 = recv(ns, &receive_buffer[n], 1, 0);
}else{
_bytes1 = recv(ns, &receive_buffer[n], 1, 0);
}
if (_bytes1 < 0) {
sprintf(send_buffer,"226 Successfully received %d bytes\r\n",bytesRecieved1);
bytes = sendString(&ns,send_buffer);
printf("Success");
break;
bytesRecieved1 += _bytes1;
}
}
}
bytes = sendString(&ns,send_buffer);
return;
}
...
Должно быть в состоянии увидеть изображение.