タイトル | : Re^3: プログラム間の変数やりとり |
記事No | : 16627 |
投稿日 | : 2021/12/28(Tue) 17:22 |
投稿者 | : でふぁいあんと |
自己レスです。なんとか動きました。 いろいろ調べまして、名前付きパイプのクライアント側、サーバー側というのが どうにも理解できないので、、、
vb6:文字列の受信側----------- hPipe = CreateNamedPipe(txtPipeName.Text, _ PIPE_ACCESS_DUPLEX, _ PIPE_WAIT Or _ PIPE_READMODE_MESSAGE Or _ PIPE_TYPE_MESSAGE, _ PIPE_UNLIMITED_INSTANCES, _ RECV_MAXLENGTH, _ RECV_MAXLENGTH, _ 1, _ udtSecurityAttributes)
'Ret = ConnectNamedPipe(hPipe, 0)
strbuf = string(255," ")
For I = 1 To 2000 Ret = ReadFile(hPipe, ByVal strbuf, LenB(strbuf), lngNumberOfBytesRead, 0) If Left(strbuf, 1) <> " " Then Exit For End If Sleep 1000 Next
Ret = CloseHandle(hPipe)
python側:文字列の送信側---pythonはこの掲示板の趣旨ではないので要約です。
handle = win32file.CreateFile(,,, word = "<print>日本語</print>" senddata = word.encode("sjis") win32file.WriteFile(handle, senddata)
●受信側で、CreatePipeしても問題は無い ●受信側の CreatePipeのタイプアウトパラメータは効かないようで、 ConnectPipeで送信を待つと送信側がトラブった場合に固まります。 なのでConnectPipeは使わずに直接ReadPipeしていますが、 ReadPipeして、ループ初回に何かデータを受信できれば問題ないですが、 なにも来ない場合は、同じように固まります。 この辺、何かアイデアはないかなあと検討しています。
|