Вопрос по функциям и сокетам

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ruso
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.07.2006 (Пн) 16:37

Вопрос по функциям и сокетам

Сообщение Ruso » 10.07.2006 (Пн) 16:50

Здравствуйте уважаемые программисты.

У меня возникла проблема с пользовательской функцией, которая отправляет данные по методу POST на сервер.

Вот часть кода:

(Код в формы)
Private Sub send_data_Click()
Dim clientdata as String
clientdata = “Добрый вечер”
Winsock.Close
Winsock.Connect localhost, 80
senddatatoserver(clientdata)
End Sub


(Код модуля)

Function senddatatoserver(clientdata)
Dim Parametrs As String
Parametrs = “data=” & clientdata
Winsock.SendData "POST /data.asp HTTP/1.1" & vbCrLf
Winsock.SendData "Content-Type: application/x-www-form-urlencoded" & vbCrLf
Winsock.SendData "Host: " & localhost & vbCrLf
Winsock.SendData "Content-Length: " & Len(Parametrs) & vbCrLf & vbCrLf
Winsock.SendData Parametrs & vbCrLf
End Function


Проблема заключается в том, что при вызове функции из формы функция выводит ошибку о неизвестном параметре “Winsock.SendData”

Как данную проблему решить? Примеров решения данной проблемы, к сожалению не нашел.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 10.07.2006 (Пн) 16:57

Замени объявление функции на
Код: Выделить всё
Function senddatatoserver(Winsock, clientdata)

и передавай:
Код: Выделить всё
senddatatoserver Winsock, clientdata


Ещё неплохо будет освоить типы ;-)
Изображение

Ruso
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.07.2006 (Пн) 16:37

Сообщение Ruso » 11.07.2006 (Вт) 2:33

Ещё неплохо будет освоить типы ;-)


Спасибо огромное !!!

Насчет типов, изучаю :)

Ruso
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.07.2006 (Пн) 16:37

Сообщение Ruso » 11.07.2006 (Вт) 2:39

Есть еще маленький вопрос, по поводу защиты, я читал что if и else в форме это открытый код для хакеров. А если я создам функцию, которая создает функцию, а эта функция в свою очередь исполняет код и возвращает результат функции, которая создала эту функцию, а функция создавшая функцию передает этот результат уже в форму.

Есть в этом смысл? :roll:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.07.2006 (Вт) 2:50

Господи... :roll: Ну прочитай, что ли, http://bbs.vbstreets.ru/viewtopic.php?t=26555
И главное, не верь всему, что пишут на заборах и в журнале "ксакеп".


См. тж. http://www.reteam.org/papers/e46.pdf (когда-то уже постил здесь эту ссылку)
Изображение

Ruso
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.07.2006 (Пн) 16:37

Сообщение Ruso » 11.07.2006 (Вт) 4:33

Великолепно…

Особенно порадовало e46.pdf :shock:

Неужели программы на VB нельзя защитить никак? :shock:

Ну, хотя бы от хакеров среднего уровня? :(

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.07.2006 (Вт) 5:34

Удивительные выводы. По обоим ссылкам, вообще-то, показано, что программы на VB ломаются ничуть не проще, чем программы на других языках.
Изображение

Ruso
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.07.2006 (Пн) 16:37

Сообщение Ruso » 12.07.2006 (Ср) 0:10

Есть еще маленькая проблемка, которую я не смог решить.
Возможно, этот вопрос уже Вам надоел.

Но вопрос такой – Как скачать файл из Интернета, чтобы программа не “зависала”.

Есть много исходных кодов в Интернете, но они все “зависают”. Пробовал через таймер, но все равно зависает.

Код: Выделить всё
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Public Event ErrorDownload(FromPathName As String, ToPathName As String)
Public Event DownloadComplete(FromPathName As String, ToPathName As String)

Public Function DownloadFile(FromPathName As String, ToPathName As String)
If URLDownloadToFile(0, FromPathName, ToPathName, 0, 0) = 0 Then
DownloadFile = True
RaiseEvent DownloadComplete(FromPathName, ToPathName)
Else
DownloadFile = False
RaiseEvent ErrorDownload(FromPathName, ToPathName)
End If
End Function

Private Sub Command1_Click()
Call DownloadFile("http://pupkin.ru/123.gif", "C:\123.gif")
End Sub


Так же пробывал через Internet Transfer Protocol, но история продолжается.

Как зделать так, чтобы не "зависало" ?

Буду премного благодарен за ответ и думаю, что не только я, так как этот вопрос интересует многих.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.07.2006 (Ср) 0:11

Из тех, кто умеет пользоваться поиском (вверху страницы, выделен красным), этот вопрос не интересует вообще никого. Потому что код давно выложен.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ruso
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 10.07.2006 (Пн) 16:37

Сообщение Ruso » 12.07.2006 (Ср) 0:27

GSerg писал(а):Из тех, кто умеет пользоваться поиском (вверху страницы, выделен красным), этот вопрос не интересует вообще никого. Потому что код давно выложен.


Спасибо добрый человек, после археологических работ на форуме я нашел этот исходный код.

------------------------
Если кто-то будет искать этот исходный код и попадет в эту тему, я выкладываю ссылку вот она - http://bbs.vbstreets.ru/download.php?id=3117


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

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

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

    TopList