Вопросов накопилось много, попробую покороче.
1. Есть ли у Winsock’а ограничение на минимальный размер пересылаемого файла
2. Можно ли узнать занят или нет в данный момент какой то конкретный порт и вообще есть ли что то типа EnumPort, о портах можно по подробнее
а) сколько их вообще, от чего зависит их количество и чем они различаются
б) почему нужно работать например с портом № 80 а не скажем с 315
3. Как при передаче файла Winsock (клиент) определяет что передача завершена (подсчитывает общее количество преданных методу SendData байт или нет)
4. Что передается в процедуру DataArrival параметром bytesTotal
5. Нет ли у кого расшифровки значений свойства State
6. Где можно взять инфу про использование Winsock, желательно на русском
1. Какая ему разница, какой длины файл?
2. Порт занят, если при попытке забиндиться на него сокет возвращает ошибку
а) Вообще их 2^16
б) Все равно, с каким работать, главное, чтобы клиент и сервер понимали друг друга
3. Винсок юзает асинхронную модель, т.е. сколько пришло одним пакетом, мб, с некоторыми нюансами, накладываемыми сокетной библиотекой, столько он тебе и говорит. Определять, завершена ли передача можно либо на программном уровне (скажем, добавляя в конец терминирующую последовательность), либо по обрыву связи
4. Число байтов, которые пришли
5. F2
6. На сайте DaSharm'а была когда-то нормальная статья.
2Sharp, по поводу № 1, когда я пробую переслать довольно большой файл > 1мб, все почти нормально (клиент неверно реагирует на завершение передачи, точнее он вообще не реагирует, это скорее всего мой косяк, нужно покопаться в коде, к стати на сколько я понял серверный модуль дожжен послать клиенту “END”, когда количество принятых бат совпадет с размером передаваемого файла), но когда пробую переслать файл FileLen = 990 байт до процедуры ws_DataArrival дело вообще не доходит. Серавно спасибо! Сейчас покопаюсь том, на что указал root.
Взять инфу о stqte можно взять в хелпе.
Просто на пиши Winsock1.State и поставь в конце курсор, жми F1. Короче смотри хелп.
bytesTotal означает обшее количество готовых к принятию байтов.
Портов (забыл точно) по-мойму больше 65000.
Чтоб проверить используется он или нет, просто подключись через него. Ошибка - порт занят.
Есть вопросы - обрашяйся ко мне