:: Visual Foxpro, Foxpro for DOS
Проблема с 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 для вижуал бейсика, сделал такое же на фокспро (смотреть выше) и не получается принять сообщение...
Ratings: 0 negative/0 positive
Re: Проблема с Microsoft WinSock Control
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
DataArrival вызывется каждый раз при поступлении порции данных (по-моему зависит от длины IP пакета).
Т.е. надо дождаться, пока количество байт не будет равно ожидаемому и один раз вызвать getData, чтобы загрузит принятое и очистить буфер приёма.
Я возился в этим DataArrival, потом плюнул и сделал просто цикл, т.к. контрол работает асинхронно.

P.S. Прихожу к выводу, что этот контрол неудобен... Лучше разобраться и использовать напрямую WinAPI.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.




Исправлено 2 раз(а). Последнее : Влад Колосов, 19.07.07 14:49
Ratings: 0 negative/0 positive
Re: Проблема с Microsoft WinSock Control
DonDragon
Автор

Сообщений: 39
Откуда: Одесса
Дата регистрации: 19.07.2007
А можно чуть по подробнее, пожайлуста.
Влад Колосов
Т.е. надо дождаться, пока количество байт не будет равно ожидаемому и один раз вызвать getData, чтобы загрузит принятое и очистить буфер приёма.
getData вызывать из DataArrival?
А что именно использовать в ВинАПИ?
Мне надо чтобы, что-то типа клиент-сервера было, чтобы можно было видеть к то подключился к серверу...
Ratings: 0 negative/0 positive
Re: Проблема с Microsoft WinSock Control
MichaelD

Сообщений: 7578
Дата регистрации: 14.05.2005
DonDragon
Решил я посмотреть что такое Microsoft WinSock Control и сделать клиент-сервер на его основе.
Сделал форму сервер и форму клиент...

Попробуй посмотреть на http://vfpdev.narod.ru/util_r.html код приложения srvwinsk.zip [24.08.2005] (117KB) - пример приложений клиента и сервера с использованием MS Winsock control (MsWinSck.ocx) VFP 8.0/VFP 9.0...


------------------
С уважением,
Михаил Дроздов, Пермь, Россия
Ratings: 0 negative/0 positive
Re: Проблема с Microsoft WinSock Control
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Цитата:
getData вызывать из DataArrival
Нет, из своего метода, к котором (грубо говоря) в цикле проверяется число принятых байт.
Реализация есть в www.foxclub.ru
Цитата:
что именно использовать в ВинАПИ
Winsock.dll, что же еще.


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.




Исправлено 1 раз(а). Последнее : Влад Колосов, 19.07.07 15:13
Ratings: 0 negative/0 positive
Re: Проблема с Microsoft WinSock Control
DonDragon
Автор

Сообщений: 39
Откуда: Одесса
Дата регистрации: 19.07.2007
MichaelD
DonDragon
Решил я посмотреть что такое Microsoft WinSock Control и сделать клиент-сервер на его основе.
Сделал форму сервер и форму клиент...

Попробуй посмотреть на http://vfpdev.narod.ru/util_r.html код приложения srvwinsk.zip [24.08.2005] (117KB) - пример приложений клиента и сервера с использованием MS Winsock control (MsWinSck.ocx) VFP 8.0/VFP 9.0...

Большое спасибо! Скачал пример, посмотрел он работает!
Теперь буду смотреть код.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 18 (Гостей: 18)

© 2000-2024 Fox Club 
Яндекс.Метрика