Схожу с ума иль восхожу...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SergeySV
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 17.04.2003 (Чт) 14:39
Откуда: Россия, Москва

Схожу с ума иль восхожу...

Сообщение SergeySV » 28.08.2003 (Чт) 16:48

Занимался я написанием своей функции коннекта к FTP-серверу. На начальном процессе упрощенные куски кода работали, ПОТОМ накатал новый модуль - не работает, упростил, поставил проверки - не работает, упростил еще - не работает, убрал все лишнее - не работает. Был вечер, без 10 восемь... плюнул , пошел домой. Сегодня: отменил регистрацию Mswinsock.ocx, зарегистрировал заново, создал новую пустую базу данных, добавил ссылку, создал форму, положил компонент Mswinsock.ocx добавил три кнопки, написал код - не работает.
Проверил свойства Mswinsock.ocx, через Total Comander подключился к FTP - сервак работает. Опять запустил форму, добавил побольше Debug'ов - все равно шишь!

Какой-то бред, у самого два дня назад такой код работал, а сейчас, в новой, пустой, написанной с нуля, базе не работает (проверял на другом компе, стал старые версии Mswinsk.ocx)

Весь код:
Код: Выделить всё
Option Compare Database
Option Explicit

Private Sub Winsock4_Connect()
  Debug.Print "Winsock4_Connect"
End Sub
Private Sub Winsock4_SendComplete()
  Debug.Print "Winsock4_SendComplete"
End Sub

Private Sub Winsock4_DataArrival(ByVal bytesTotal As Long)
  Dim sData As String
  Winsock4.GetData sData, vbString
  Debug.Print sData
End Sub

Private Sub Кнопка1_Click()
  Dim sSendData As String
  Dim FromHost As String, sUser As String, sPass As String
 
  FromHost = "111.111.111.111"
  sUser = ...
  sPass = ...
 
  Winsock4.Close
  Winsock4.Protocol = sckTCPProtocol
  Winsock4.RemotePort = 21  ' порт FTP
  Winsock4.RemoteHost = FromHost ' адрес FTP-сервера
  Winsock4.Connect
End Sub

Private Sub Кнопка2_Click()
  Dim sSendData As String
  Dim sUser As String

  sUser = "user_puper" ' пример соотв.
  Do Until Winsock4.State = 7
    DoEvents
  Loop
  sSendData = "USER " & sUser & vbCrLf
  Winsock4.SendData sSendData
End Sub

Private Sub Кнопка3_Click()
  Winsock4.Close
End Sub


Отчет Debuga:

Winsock4_Connect
220 Serv-U FTP Server v3.0 for WinSock ready...

Winsock4_SendComplete

Ответ от сервера на команду USER так и не пришло.

Код уже упростил по максимому. Не знаю что еще можно поменять или проверить.

Посоветуйте что-нибудь, как вернуть счастливое мгновение работы winsock'a . Может там с бубном вокруг компа походить надо или еще что .... Заранее благодарен за любой совет (кроме суицида), потому как мое воображение уже признало свое поражение.
Главное двигаться не быстрее, чем думает твоя голова.

SergeySV
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 17.04.2003 (Чт) 14:39
Откуда: Россия, Москва

Сообщение SergeySV » 29.08.2003 (Пт) 9:51

В качестве эксперимента написал дополнительно к клиенту еще и простой сервер и запустил его слушать, а клиенту указал порт сервера и свой лок. адрес (сервер и клиент на одной машине запущены).
И вот какие интересные результаты получил.

Чудеса какие-то...

Клиент посылает данные серваку, а на сервак приходит абракадабра, он ее тут же отсылает клиенту, и клиент получает все нормально, один в один как послал сервак. Т.е. сервак клиенту отправлят и клиент получает - нормально, а вот то что клиент отправляет серваку, то сервак получает какой-то бред.

Например:
посылаю серв. получает серв.
"a" & vbCrLf F ґп
"1" & vbCrLf F ґп
"2" & vbCrLf ьC ґп

или даже вот так
"2" & vbCrLf F ґп
"2" & vbCrLf ьC ґп
"2" & vbCrLf F ґп
"2" & vbCrLf ьC ґп
"2" & vbCrLf F ґп
"2" & vbCrLf ьC ґп
т.е. данные одни и те же посылаю, а приходит фигня двух типов ...

Непонимаю как это можно объяснить... какие могут быть варианты, а???
Главное двигаться не быстрее, чем думает твоя голова.

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 29.08.2003 (Пт) 9:58

хы, да проблема... я с таким не встречался но уж попробуй после всех senddata поставить DoEvents. вряд ли поможет но все же.. ну и все-таки попробуй с бубном вокруг компа побегать если не поможет то винду чтоли переставь, может пока ставиться будет придумаешь чего-нибудь

ASD
Модератор
Модератор
Аватара пользователя
 
Сообщения: 1758
Зарегистрирован: 07.12.2001 (Пт) 21:08
Откуда: Russia

Сообщение ASD » 29.08.2003 (Пт) 11:14

Куча компонентов для FTP есть причем халява... выбирай на вкус...
Moderator VBStreets
---------------------------

SergeySV
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 17.04.2003 (Чт) 14:39
Откуда: Россия, Москва

Сообщение SergeySV » 29.08.2003 (Пт) 13:09

ASD писал(а):Куча компонентов для FTP есть причем халява... выбирай на вкус...


Да просто такой вот упрощенный код у меня работал на компе два дня назад:

Код: Выделить всё
WinsockCom.Connect
Do Until WinsockCom.State = 7
DoEvents
Loop
sSendData = "USER " & sUser & vbCrLf
WinsockCom.SendData sSendData


В событии DataAravial приходили все ответы от сервака. А вот теперь, не помойму что происходит, даже такой код не работает. Хочу разобраться в чем трабл... Этот код работает(а раньше работал) в форме Access Xp. Перенес его в Excel, там все чудно работает ... Получается вроде дело в самом Access. Написал с нуля базу на другом компе под Access Xp, там такой же глюк, отсюда получается дело все- таки в коде, который почему-то именно Access'у не нравится, НО, выше указанный код работал два назад, а теперь нет - КРУГ ЗАМКНУЛСЯ... логика умирает, воображение дохнет...
Главное двигаться не быстрее, чем думает твоя голова.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 13

    TopList