タイトル : Re^3: プログラム間の変数やりとり 投稿日 : 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して、ループ初回に何かデータを受信できれば問題ないですが、 なにも来ない場合は、同じように固まります。 この辺、何かアイデアはないかなあと検討しています。 |