Ищу способ создать не глюченый дополнительный поток

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

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Rody66 » 22.09.2011 (Чт) 1:04

Что если прочитать внимательно описание флага?

Да, глупый косяк.
Но таким способом тоже ничего ассинхронного не происходит, и окно не обновляется:
hOpen = InternetOpen("API-Guide sample program", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, INTERNET_FLAG_ASYNC)

Теперь что не так?:(

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Хакер » 22.09.2011 (Чт) 1:16

Rody66 писал(а):ассинхронного

От слова ass?

Rody66 писал(а):Теперь что не так?:(

Кэлбеки установлены?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Rody66 » 22.09.2011 (Чт) 1:21

От слова ass?

2 часа ночи..
Кэлбеки установлены?

Я конечно извиняюсь, но первый раз слышу.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Хакер » 22.09.2011 (Чт) 1:45

Rody66 писал(а):2 часа ночи..

А у меня 4 :)

Rody66 писал(а):Я конечно извиняюсь, но первый раз слышу.

Если кэлбек не установлены, то чего ты ожидаешь? Ты вызываешь функцию, и по идее, она должна сразу же вернуть выполнение, а реальное выполнение операции будет сигнализировано вызовом кэлбека. Если кэлбека нет, то естественно, что функция не может использовать асинхронный режим и работает в синхронном.

Не даром в описании InternetSetStatusCallback сказано:
Both synchronous and asynchronous functions use the callback function to indicate the progress of the request, such as resolving a name, connecting to a server, and so on. The callback function is required for an asynchronous operation. The asynchronous request will call back to the application with INTERNET_STATUS_REQUEST_COMPLETE to indicate the request has been completed.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Rody66 » 22.09.2011 (Чт) 10:25

В районе часа искал работающий код, нашел пару вариантов, но они не работают. Все как было, так и осталось..
Первый вариант:
Код: Выделить всё
        hOpen = InternetOpen("API-Guide sample program", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, INTERNET_FLAG_ASYNC)
        Call InternetSetStatusCallback(hOpen, AddressOf MyCallBack)
'дальше интернет коннект

Private Sub MyCallBack( _
      ByVal hInternet As Long, _
      ByVal dwContext As Long, _
      ByVal dwInternetStatus As Long, _
      ByVal pbStatusInformation As Long, _
      ByVal dwStatusInformationLength As Long)
      ' Callback routine implementation.
   End Sub


И второй вариант, уже более сложный:
Код: Выделить всё
' Constants - CallbackProc.dwInternetStatus
Private Const INTERNET_STATUS_CLOSING_CONNECTION = 50     ' Closing the connection to the server. The lpvStatusInformation parameter is NULL.
Private Const INTERNET_STATUS_CONNECTED_TO_SERVER = 21    ' Successfully connected to the socket address (SOCKADDR) pointed to by lpvStatusInformation.
Private Const INTERNET_STATUS_CONNECTING_TO_SERVER = 20   ' Connecting to the socket address (SOCKADDR) pointed to by lpvStatusInformation.
Private Const INTERNET_STATUS_CONNECTION_CLOSED = 51      ' Successfully closed the connection to the server. The lpvStatusInformation parameter is NULL.
Private Const INTERNET_STATUS_CTL_RESPONSE_RECEIVED = 42  ' Not implemented
Private Const INTERNET_STATUS_DETECTING_PROXY = 80        ' Notifies the client application that a proxy has been detected.
Private Const INTERNET_STATUS_HANDLE_CLOSING = 70         ' This handle value has been terminated.
Private Const INTERNET_STATUS_HANDLE_CREATED = 60         ' Used by InternetConnect to indicate it has created the new handle. This lets the application call InternetCloseHandle from another thread, if the connect is taking too long. The lpvStatusInformation parameter contains the address of an INTERNET_ASYNC_RESULT structure.
Private Const INTERNET_STATUS_INTERMEDIATE_RESPONSE = 120 ' Received an intermediate (100 level) status code message from the server.
Private Const INTERNET_STATUS_NAME_RESOLVED = 11          ' Successfully found the IP address of the name contained in lpvStatusInformation.
Private Const INTERNET_STATUS_PREFETCH = 43               ' Not implemented
Private Const INTERNET_STATUS_RECEIVING_RESPONSE = 40     ' Waiting for the server to respond to a request. The lpvStatusInformation parameter is NULL.
Private Const INTERNET_STATUS_REDIRECT = 110              ' An HTTP request is about to automatically redirect the request. The lpvStatusInformation parameter points to the new URL. At this point, the application can read any data returned by the server with the redirect response and can query the response headers. It can also cancel the operation by closing the handle. This callback is not made if the original request specified INTERNET_FLAG_NO_AUTO_REDIRECT.
Private Const INTERNET_STATUS_REQUEST_COMPLETE = 100      ' An asynchronous operation has been completed. The lpvStatusInformation parameter contains the address of an INTERNET_ASYNC_RESULT structure.
Private Const INTERNET_STATUS_REQUEST_SENT = 31           ' Successfully sent the information request to the server. The lpvStatusInformation parameter points to a DWORD containing the number of bytes sent.
Private Const INTERNET_STATUS_RESOLVING_NAME = 10         ' Looking up the IP address of the name contained in lpvStatusInformation.
Private Const INTERNET_STATUS_RESPONSE_RECEIVED = 41      ' Successfully received a response from the server. The lpvStatusInformation parameter points to a DWORD containing the number of bytes received.
Private Const INTERNET_STATUS_SENDING_REQUEST = 30        ' Sending the information request to the server. The lpvStatusInformation parameter is NULL.
Private Const INTERNET_STATUS_STATE_CHANGE = 200          ' Moved between a secure (HTTPS) and a nonsecure (HTTP) site. This can be one of the following values:
Private Const INTERNET_STATE_CONNECTED = &H1              ' Connected state (mutually exclusive with disconnected state).
Private Const INTERNET_STATE_DISCONNECTED = &H2           ' Disconnected state. No network connection could be established.
Private Const INTERNET_STATE_DISCONNECTED_BY_USER = &H10  ' Disconnected by user request.
Private Const INTERNET_STATE_IDLE = &H100                 ' No network requests are being made by the Microsoft® Win32® Internet functions.
Private Const INTERNET_STATE_BUSY = &H200                 ' Network requests are being made by the Win32 Internet functions.
Private Const INTERNET_STATUS_USER_INPUT_REQUIRED = 140   ' The request requires user input to be completed.

Private Sub Command2_Click()
        hOpen = InternetOpen("API-Guide sample program", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, INTERNET_FLAG_ASYNC)
        Call InternetSetStatusCallback(hOpen, AddressOf CallbackProc)
'дальше интернет коннект
End Sub

Public Sub CallbackProc(ByVal hInternet As Long, ByVal dwContext As Long, ByVal dwInternetStatus As Long, ByRef lpvStatusInformation As Long, ByVal dwStatusInformationLength As Long)
 
  Dim SA_Temp       As SOCKADDR
  Dim IAR_Temp      As INTERNET_ASYNC_RESULT
  Dim RC_Temp       As REQUEST_CONTEXT
  Dim Str_Temp      As String
  Dim Lng_Temp      As Long
  Dim strStatusNum  As String
  Dim strStatusDesc As String
  Dim strStatusInfo As String
  Dim strIpAddress  As String
  Dim lngResultCode As Long
  Dim lngErrorNum   As Long
  Dim lngBytesSent  As Long
  Dim lngBytesRecv  As Long
 
  ' Get the status number
  strStatusNum = dwInternetStatus
 
  ' Get the status description
  strStatusDesc = CallbackStatus(dwInternetStatus)
 
  ' Get the Status Information
  Select Case dwInternetStatus
    Case INTERNET_STATUS_CONNECTED_TO_SERVER, INTERNET_STATUS_CONNECTING_TO_SERVER
      Str_Temp = String(MAX_PATH, Chr(0))
      StringFromPointer Str_Temp, VarPtr(lpvStatusInformation)
      Str_Temp = Left(Str_Temp, InStr(Str_Temp, Chr(0)) - 1)
      strStatusInfo = "IP Address = " & Str_Temp
      strIpAddress = Str_Temp
     
    Case INTERNET_STATUS_NAME_RESOLVED
      Str_Temp = String(MAX_PATH, Chr(0))
      StringFromPointer Str_Temp, VarPtr(lpvStatusInformation)
      Str_Temp = Left(Str_Temp, InStr(Str_Temp, Chr(0)) - 1)
      strStatusInfo = "IP Address = " & Str_Temp
      strIpAddress = Str_Temp
     
    Case INTERNET_STATUS_REDIRECT, INTERNET_STATUS_RESOLVING_NAME
      Str_Temp = String(MAX_PATH, Chr(0))
      StringFromPointer Str_Temp, VarPtr(lpvStatusInformation)
      Str_Temp = Left(Str_Temp, InStr(Str_Temp, Chr(0)) - 1)
      strStatusInfo = "IP Address = " & Str_Temp
      strIpAddress = Str_Temp
     
    Case INTERNET_STATUS_REQUEST_SENT
      strStatusInfo = "Bytes SENT = " & CStr(lpvStatusInformation)
      lngBytesSent = lpvStatusInformation
     
    Case INTERNET_STATUS_RESPONSE_RECEIVED
      strStatusInfo = "Byte RECIEVED = " & CStr(lpvStatusInformation)
      lngBytesRecv = lpvStatusInformation
     
    Case INTERNET_STATUS_HANDLE_CREATED, INTERNET_STATUS_REQUEST_COMPLETE
      CopyMemory IAR_Temp, VarPtr(lpvStatusInformation), Len(IAR_Temp)
      strStatusInfo = "Result = " & IAR_Temp.dwResult & ", Error = " & IAR_Temp.dwError
      lngResultCode = IAR_Temp.dwResult
      lngErrorNum = IAR_Temp.dwError
     
    Case Else
      strStatusInfo = ""
  End Select
 
End Sub

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

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Rody66 » 22.09.2011 (Чт) 13:54

Есть еще запасной вариант - это не мучатся с асинхронностью, и попробовать заливать файлы в новом потоке. Правда там куча апишных вызовов, боюсь будут проблемы. Есть какие то мнения на этот счет?

[Хакер] :: Оффтопик вырезан и отделён в отдельную тему.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Хакер » 23.09.2011 (Пт) 0:16

Rody66 писал(а): но вот никакой асинхронности там не проглядывается.

Попробовал написать свой код. Асинхронность есть, окно ни раз не «подвисает».
Проблема на самом деле в другом. Callback может быть вызван из любого потока который есть в процессе. А здесь мы наталкиваемся на ту же проблему: инициализированный поток есть только у главного потока.

В общем, это не такая проблема, есть написать callback тем способом, о котором я говорил: не трогать внутри callback-а никакие функции или объекты, а просто устанавливать скалярные поля и флаги в структуре, передаваемое через параметр Context. То мы не сможем сделать красивую архитектуру, и нам придётся таймерами ждать установки дальнейших флагом для продолжения работы.

И есть ещё один вариант: упаковывать параметры и слать из callback-а сообщение специальному окну, принадлежащему главному потоку. Небольшая издержка на ITC, но опять открывается возможность красивой архитектуры.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

arthur2
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1688
Зарегистрирован: 23.01.2008 (Ср) 14:35

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение arthur2 » 23.09.2011 (Пт) 11:37

Mikle писал(а):Я думал, что из основных типов только String завязан на рантайм (плюс всякие Decimal, Currency, Variant). Оказывается Single и Double тоже?


На сколько я понимаю, в другом потоке будут ограничения не на рантайм вообще, а только на то, что требует рантаймовских классов. А всё, что просто экспортируется, нормально будет работать: и строки, и строковые функции, думаю, будут доступны. Нет?

Хакер писал(а):Если народ будет давить и я буду чувствовать, что это кому-то кроме меня нужно, я конечно сделаю быстрее.
Я бы надавил - мне нужно :)
Артур
 
   

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Rody66 » 23.09.2011 (Пт) 19:24

Попробовал написать свой код. Асинхронность есть, окно ни раз не «подвисает».
Проблема на самом деле в другом. Callback может быть вызван из любого потока который есть в процессе. А здесь мы наталкиваемся на ту же проблему: инициализированный поток есть только у главного потока.

Поделился бы что ли кодом, раз уж написал уже)
В общем, это не такая проблема, есть написать callback тем способом, о котором я говорил: не трогать внутри callback-а никакие функции или объекты, а просто устанавливать скалярные поля и флаги в структуре, передаваемое через параметр Context. То мы не сможем сделать красивую архитектуру, и нам придётся таймерами ждать установки дальнейших флагом для продолжения работы.

А первый вариант того кода, что я дал, разве не то, что нужно?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Хакер » 23.09.2011 (Пт) 21:35

Rody66 писал(а):
Попробовал написать свой код. Асинхронность есть, окно ни раз не «подвисает».
Проблема на самом деле в другом. Callback может быть вызван из любого потока который есть в процессе. А здесь мы наталкиваемся на ту же проблему: инициализированный поток есть только у главного потока.

Поделился бы что ли кодом, раз уж написал уже)

Держи. Я хотел написать эдакий полнофункциональный асинхронный пример с поддержкой множества соединений, и вообще такой, где абсолютно все длительные операции на вызывают даже намёка на подвисание.

Но упёрся в то, что всё падает, потому что callback вызывается из произвольного потока, а не из главного.
ftp+async.zip
(15.19 Кб) Скачиваний: 149

В скомпилированном виде падает, но при отладке в IDE вроде работает.

Собственно, я знаю кучу способов того, как заставить это работать. Выбирай любой на вкус. Наиболее простой с флагами и таймерами.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Rody66 » 23.09.2011 (Пт) 22:04

Хакер , премного благодарен! Попробую разобраться.. Мне кстати никакого "многофункционала" не надо в общем то. Например, просто каждый час лить файл в 5 байт на хост. И все. Сейчас пробую все это упростить до своих нужд. Кстати, когда ввожу свои данные в форму ввода, жму ок, открывается окошко "Резолвинг..", на это стоит и дальше не идет. Не знаю в чем дело, в любом случае пробую упростить все это, и конечно, спасибо еще раз за проделанную работу.
ЗЫ Уж очень ты постарался с кодом, откуда у тебя столько времени на это нашлось О_о .

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Хакер » 23.09.2011 (Пт) 22:08

Rody66 писал(а):Кстати, когда ввожу свои данные в форму ввода, жму ок, открывается окошко "Резолвинг..", на это стоит и дальше не идет.

Значит ты вводишь кривое доменное имя. У меня останавливается на «Соединение установлено» и вываливается вот такой отладочный дамп:
Код: Выделить всё
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_HANDLE_CREATED
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_RESOLVING_NAME
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_NAME_RESOLVED
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_CONNECTING_TO_SERVER
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_CONNECTED_TO_SERVER
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_RECEIVING_RESPONSE
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_RESPONSE_RECEIVED
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_SENDING_REQUEST
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_REQUEST_SENT
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_RECEIVING_RESPONSE
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_RESPONSE_RECEIVED
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_SENDING_REQUEST
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_REQUEST_SENT
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_RECEIVING_RESPONSE
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_RESPONSE_RECEIVED
XXX_Callback: i am here. dwInetStatus = INTERNET_STATUS_REQUEST_COMPLETE


Rody66 писал(а):Не знаю в чем дело, в любом случае пробую упростить все это, и конечно, спасибо еще раз за проделанную работу.

Это не нужно упрощать, наоборот, нужно усложнять, потому что в столько простом виде, без ITC, работать это нормально не будет.

Rody66 писал(а):ЗЫ Уж очень ты постарался с кодом, откуда у тебя столько времени на это нашлось О_о .

Так я остановился на 5 % работы. Там сто строчек, на это ушло 15—20 минут.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Rody66 » 23.09.2011 (Пт) 22:40

Значит ты вводишь кривое доменное имя. У меня останавливается на «Соединение установлено»

И правда, сейчас проверил сервер, не работает, работы может какие то.. Кстати может знаешь какой нибудь бесплатный хостинг, по стабильнее, чтобы тупо файлы хранить? Сейчас FreeWebHostingArea использую, но вот что-то уже начинает подводить.
Так я остановился на 5 % работы. Там сто строчек, на это ушло 15—20 минут.

Боюсь, кроме тебя до конца дописывать будет некому. Да и не к чему это, когда я итак в большинство имеющихся строк с трудом вникаю, нету смысла тебе писать, трудится, чтобы я потом тупо вставил это в свой проект и начал использовать, не понимания 90% написанного. Конечно, я не 1 на форуме, и конечно же, найдутся те, кому это будет интересно, но, тем не менее, для меня пока в этом смысла нет. Когда ты про асинхронный фтп сказал, думал что все куда проще будет. В общем все больше и больше убеждаюсь, что с фтп пустая затея, и надо бы уже рассматривать метод POST. Если не сложно, подскажи что искать, чтобы реализовать запись в файл, путем использования POST метода, то есть как это реализовать с одной (программа) и с другой (сервер) стороны. Спасибо.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Хакер » 23.09.2011 (Пт) 23:03

Rody66 писал(а):Если не сложно, подскажи что искать, чтобы реализовать запись в файл, путем использования POST метода, то есть как это реализовать с одной (программа) и с другой (сервер) стороны.

Смотря что с той стороны.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Rody66 » 23.09.2011 (Пт) 23:17

Моя сторона (отправитель) - компьютер, другая сторона (сторона-приемник) - сервер. Отправлять надо информацию всего по 1-10 байт на 1 файл.
Смотря что с той стороны.

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

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Хакер » 23.09.2011 (Пт) 23:37

Rody66 писал(а):Речь о каких то технологиях? Насколько я помню, кроме всего прочего там доступен и пхп, если правильно тебя понял.

Я не рассматриваю по-умолчанию частные случаи и стремлюсь всеми силами не угадывать какие-то детали.

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

В каждом из этих случаев возможно какое-то решение. В частности, если там Windows, то сервер-программу можно тоже написать на VB. Ну а если PHP... Создавай тему в другом (подходящем) разделе форума.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Rody66 » 24.09.2011 (Сб) 1:06

Бесплатный сервер, стоит на линуксе. В общем, я так понимаю, необходимо написать какой-нибудь простенький скрипт-обработчик (можно даже на хтмл), который уже в зависимости от запроса будет создавать необходимый мне файл, верно?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Хакер » 24.09.2011 (Сб) 2:44

Rody66 писал(а):Бесплатный сервер, стоит на линуксе. В общем, я так понимаю, необходимо написать какой-нибудь простенький скрипт-обработчик (можно даже на хтмл), который уже в зависимости от запроса будет создавать необходимый мне файл, верно?

Если там есть подходящий веб-сервер и подходящий скриптовый интерпретатор, то да, это один из возможных вариантов.

Rody66 писал(а):(можно даже на хтмл),

Бред. HTML — не скриптовый язык, а язык разметки. Нельзя.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Rody66 » 24.09.2011 (Сб) 11:23

Бред. HTML — не скриптовый язык, а язык разметки. Нельзя.

Ты прав.. это скрипты генерируют готовый html.
Если там есть подходящий веб-сервер и подходящий скриптовый интерпретатор, то да, это один из возможных вариантов.

В таком случае, буду искать "обработка post запроса на php", отпишу как будут новости.

tav
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 28.05.2010 (Пт) 6:48

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение tav » 25.10.2011 (Вт) 10:30

Хакер писал(а):Если народ будет давить и я буду чувствовать, что это кому-то кроме меня нужно, я конечно сделаю быстрее.

мне очень даже нужно, как процесс создания ? :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Хакер » 25.10.2011 (Вт) 21:45

tav писал(а):мне очень даже нужно, как процесс создания ? :)

Пока не брался за создание кирпича, но планирую начать в эти выходные.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tav
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 28.05.2010 (Пт) 6:48

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение tav » 30.11.2011 (Ср) 13:49

надеюсь не будет сочтено за флуд, но кирпичик всё ещё очень нужен :)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Хакер » 30.11.2011 (Ср) 15:23

Я в работе. Собственно, кирпич уже обеспечивает многопоточность в режиме EXE, но пока не обеспечивает её в режиме отладки в IDE.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Rody66
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 183
Зарегистрирован: 16.01.2011 (Вс) 17:03

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Rody66 » 30.11.2011 (Ср) 21:16

Я в работе. Собственно, кирпич уже обеспечивает многопоточность в режиме EXE, но пока не обеспечивает её в режиме отладки в IDE.

<офф>
Может быть стоит по-потихоньку начать расшаривать кирпичек.. А со временем обновлять :)
</офф>
Последний раз редактировалось Rody66 01.12.2011 (Чт) 15:16, всего редактировалось 1 раз.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Ищу способ создать не глюченый дополнительный поток

Сообщение Хакер » 30.11.2011 (Ср) 21:20

Не стоит. Недоделанная глючная библиотека может уйти в массы и своей глючностью получить репутацию библиотеки, о которой автор говорил, что она безглючная, но которая тем не менее оказалась глючной. Автор не оправдал наши ожидания, библиотека не оправдала наши ожидания, VB не оправдал наши ожидания, многопоточности теперь уже точно не будет. Не хочу такого. Поэтому выложу только вылизанную версию.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Пред.

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 63

    TopList