Хай. Пишу FTP под нашу ось (sockets/tcp/ip/enet уже написал, вроде работает но на всяк пожарный прилепил лог пакетов сессии (в формате comview и просто текст)). Действую след. образом: 1. Обрабатываю коннект/user/port (тут все ок) 2. Приходит LIST, я коннектюсь на указанный ip/порт (коннект проходит успешно) 3. Шлю им строки: "150 Opening ASCII mode data connection\r\n"; "drw-rw-rwx 0 nouser nogroup 0 Sep 0 00:00 folder\r\n"; "226 Ok\r\n"; 4. Закрываю канал данных. На мой FIN приходит акк, но клиент "зависает" на несколько секунд после этого... Потом шлет ABORTы (я их пока не врубил, отвечаю not implemeted). Потом таки шлет мне FIN+ACK и только после этого, аллелуя, выводит мой folder... WTF ? Объясните плиз, может я не совсем понял telnet протокол, он явно чего-то еще ждет после строки с "folder", может там должно быть два 0xd,0xa ? ХЗ _668858510__pack.zip
А "200 PORT command successful" после команды PORT клиента и удачного открытия порта сервером ты шлешь клиенту?
Все ок, оказывается я на FIN'е увеличивал на 1 seq number для ACK'а... В очередной раз винда показала свое "нечеловеческое" лицо TCP-реализации (вот интересно попытаться с линуха законнектится на такой ftp...)