Проблема с Microsoft WinSock Control | |
---|---|
DonDragon Автор Сообщений: 39 Откуда: Одесса Дата регистрации: 19.07.2007 |
Решил я посмотреть что такое Microsoft WinSock Control и сделать клиент-сервер на его основе.
Сделал форму сервер и форму клиент. Проблема заключается в том, что метод GetData() не принимает сообщение. А теперь подробнее. 1. На форме-сервер прослушиваем заданный порт. 2. На форме-клиент указываем ИП-адрес сервера и порт,который прослушивает сервер. 3. Делаем конект с клиента на сервер. (всё происходит нормально. На сервере видно, что клиент законектился) И вот проблема: 4. С формы-клиента или формы-сервера, отправляем сообщение thisform.olecontrol1.obJECT.sendData(cMsg) 5. При приеме сообщения в DataArrival методом thisform.olecontrol1.obJECT.getData(cMsg). Переменная оказывается пустой или хранит то же значение что и раньше..., хотя в параметре bytestotal передаётся правильное количество байт. Вопрос: Что я делаю не правильно? Кто такое делал на фокспро? Нашел пример использования Microsoft WinSock Control для вижуал бейсика, сделал такое же на фокспро (смотреть выше) и не получается принять сообщение... |
Re: Проблема с Microsoft WinSock Control | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
DataArrival вызывется каждый раз при поступлении порции данных (по-моему зависит от длины IP пакета).
Т.е. надо дождаться, пока количество байт не будет равно ожидаемому и один раз вызвать getData, чтобы загрузит принятое и очистить буфер приёма. Я возился в этим DataArrival, потом плюнул и сделал просто цикл, т.к. контрол работает асинхронно. P.S. Прихожу к выводу, что этот контрол неудобен... Лучше разобраться и использовать напрямую WinAPI. ------------------ Совершенство - это не тогда, когда нельзя ничего прибавить, а тогда, когда нечего убавить. Исправлено 2 раз(а). Последнее : Влад Колосов, 19.07.07 14:49 |
Re: Проблема с Microsoft WinSock Control | |
---|---|
DonDragon Автор Сообщений: 39 Откуда: Одесса Дата регистрации: 19.07.2007 |
А можно чуть по подробнее, пожайлуста.
getData вызывать из DataArrival? А что именно использовать в ВинАПИ? Мне надо чтобы, что-то типа клиент-сервера было, чтобы можно было видеть к то подключился к серверу... |
Re: Проблема с Microsoft WinSock Control | |
---|---|
MichaelD Сообщений: 7578 Дата регистрации: 14.05.2005 |
Попробуй посмотреть на http://vfpdev.narod.ru/util_r.html код приложения srvwinsk.zip [24.08.2005] (117KB) - пример приложений клиента и сервера с использованием MS Winsock control (MsWinSck.ocx) VFP 8.0/VFP 9.0... ------------------ С уважением, Михаил Дроздов, Пермь, Россия |
Re: Проблема с Microsoft WinSock Control | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
Цитата:Нет, из своего метода, к котором (грубо говоря) в цикле проверяется число принятых байт. Реализация есть в www.foxclub.ru Цитата:Winsock.dll, что же еще. ------------------ Совершенство - это не тогда, когда нельзя ничего прибавить, а тогда, когда нечего убавить. Исправлено 1 раз(а). Последнее : Влад Колосов, 19.07.07 15:13 |
Re: Проблема с Microsoft WinSock Control | |
---|---|
DonDragon Автор Сообщений: 39 Откуда: Одесса Дата регистрации: 19.07.2007 |
Большое спасибо! Скачал пример, посмотрел он работает! Теперь буду смотреть код. |
© 2000-2024 Fox Club  |