|
|
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
Добрый день! Пытаюсь с помощью пайпов передать текст. Код следующий: Кто передает: Dim res& Dim written& sndBlocked.Enabled = False lblStat.Caption = "Waiting for client" lblStat.Refresh res = ConnectNamedPipe(pipehnd, 0) If res <> 0 Or (res = 0 And GetLastError() = ERROR_PIPE_CONNECTED) Then lblStat.Caption = "Sending data" lblStat.Refresh Код: plaintext res = WriteFile(pipehnd, buffer, Len(buffer) + 1, written, 0) Else MsgBox "Client has disconnected" End If lblStat.Caption = "Idle" sndBlocked.Enabled = True Кто получает: res = WaitNamedPipe(txtPipe.Text, 10000) If res = 0 Then MsgBox "Pipe is not available at this time" Exit Sub End If pipehandle = CreateFile(txtPipe.Text, GENERIC_READ Or GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0) If pipehandle = INVALID_HANDLE_VALUE Then MsgBox "Can't open named pipe" Exit Sub End If Dim inbuf As String Dim bytesread&, bytesavail&, bytesleft& res = ReadFile(pipehandle, inbuf, 512, bytesread, 0) If res Then Text1.Text = inbuf End If Подскажите, как мне нужно переписать выделенные строки, чтобы в окне получателя отобразился передаваемый текст? Заранее спасибол! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 13:54 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
На все ответить не могу, но замечу, что вместо GetLastError() вам надо использовать Err.LastDllError() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 16:31 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
И еще: а какая необходимость в использовании pipes? Разве FSO не удобнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 16:35 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
Вот здесь неплохой пример на pipes: http://binaryworld.net/Main/CodeDetail.aspx?CodeId=3665 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 16:45 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
VladConnно замечу, что вместо GetLastError() вам надо использовать Err.LastDllError()Зависит от того, как описаны API-шные функции. Если они описаны в библиотеке типов без указания атрибута usesgetlasterror, то надо использовать GetLastError(). В противном случае (Declare, или в tlb с usesgetlasterror) - Err.LastDllError(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 17:46 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
VladConnИ еще: а какая необходимость в использовании pipes? Разве FSO не удобнее? Т.е. передать строку через текстовый файл? Если вы именно это имели в виду, то не вариант... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 18:58 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
VladConnВот здесь неплохой пример на pipes: http://binaryworld.net/Main/CodeDetail.aspx?CodeId=3665 Посмотрел, но мало чего понял... А особенно не нашел ответа на свой вопрос... Может, кто-нибудь, кто хоть раз использовал пайпы, поможет мне поправить мой код? Мне это надо очень срочно, но о них я слышу впервые, поэтому сам вряд ли разберусь! Заранее благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 19:06 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
Может, сразу объясните мне, что значат символы & и $ после переменной? Имею в виду следующую запись: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 19:10 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
Альтернативный способ обьявления переменных. Первое если не ошибаюсь Long а второе - String ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 20:00 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
VB6Альтернативный способ обьявления переменных. Первое если не ошибаюсь Long а второе - String Да? вот уж не думал... спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 20:30 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
Бенедикт VladConnно замечу, что вместо GetLastError() вам надо использовать Err.LastDllError()Зависит от того, как описаны API-шные функции. Если они описаны в библиотеке типов без указания атрибута usesgetlasterror, то надо использовать GetLastError(). В противном случае (Declare, или в tlb с usesgetlasterror) - Err.LastDllError(). Бенедикт, возможно и так, но microsoft здесь http://msdn2.microsoft.com/en-us/library/ms679360.aspx утверждает, что в VB - LastDllError. С уважением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 21:28 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
boles VB6Альтернативный способ обьявления переменных. Первое если не ошибаюсь Long а второе - String Да? вот уж не думал... спасибо! Он оставлен для совместимости со старыми версиями. Рекомендуется использовать "as String, as Long" и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 21:34 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
boles VladConnИ еще: а какая необходимость в использовании pipes? Разве FSO не удобнее? Т.е. передать строку через текстовый файл? Если вы именно это имели в виду, то не вариант... Но ведь вы сами используете WriteFile... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 21:37 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
VladConn boles VladConnИ еще: а какая необходимость в использовании pipes? Разве FSO не удобнее? Т.е. передать строку через текстовый файл? Если вы именно это имели в виду, то не вариант... Но ведь вы сами используете WriteFile... Я все-таки считаю, что это не текстовый файл... Хотя кто его этого лешия знает :) Объясните мне тогда, эти пайпы что ничем практически не отличаются от текстовых файлов или это просто функции именуются одинаково? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 21:41 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
boles VladConnВот здесь неплохой пример на pipes: http://binaryworld.net/Main/CodeDetail.aspx?CodeId=3665 Посмотрел, но мало чего понял... А особенно не нашел ответа на свой вопрос... Может, кто-нибудь, кто хоть раз использовал пайпы, поможет мне поправить мой код? Мне это надо очень срочно, но о них я слышу впервые, поэтому сам вряд ли разберусь! Заранее благодарю! В этой ссылке как раз показано, как правильно использовать pipes для ваших целей. У вас именно client - server. Там сказано, что требуется 6 шагов для сервера и 3 - для клиента. И эти шаги расписаны. Вот вам и правка кода. С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 21:49 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
boles VladConn boles VladConnИ еще: а какая необходимость в использовании pipes? Разве FSO не удобнее? Т.е. передать строку через текстовый файл? Если вы именно это имели в виду, то не вариант... Но ведь вы сами используете WriteFile... Я все-таки считаю, что это не текстовый файл... Хотя кто его этого лешия знает :) Объясните мне тогда, эти пайпы что ничем практически не отличаются от текстовых файлов или это просто функции именуются одинаково? :0) Я Пастернака не читал, но против! Если серьезно, я pipes не знаю. Но знаю, что FSO - всего лишь wrapper вокруг API функций для работы с файлами. Вы там в коде у себя ведь строку же передаете, текстовую: buffer$ = String$(200, "aaaaaaaa") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2007, 21:54 |
|
||
|
Использование pipes
|
|||
|---|---|---|---|
|
#18+
хотя в pipes и используется writefile - это все-таки совсем другое дело.. pipes - это механизм клиент-серверного общения. файлы - это тормознее гораздо и нестабильнее. между прочим, кроме так сейчас популярных портов (и обсуждаемых тут пайпов) существует еще много других клиент-серверных технологий: MailSlots, OLE/COM/DCOM, CGI, ASP, образы файлов отображаемые в памяти (работа идет с дескрипторами файлов в процессе, их отображает Винда.. кэш - это о том же.. тока этот метод доступен лишь при локальном обмене данными, т.к. память - она только локальная) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2007, 12:11 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34711517&tid=2163619]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 456ms |

| 0 / 0 |
