C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C# ソケットの共有

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■89924 / inTopicNo.1)  C# ソケットの共有
  
□投稿者/ AA (1回)-(2019/01/18(Fri) 14:27:35)

分類:[C#] 

お世話になっております。

現在、Pythonファイルに、WPF画面と他プロセス間で接続したソケットを渡したいと考えています。

共有メモリの使用を考えたのですが、C#のsocket型はサイズが不定となることから、
共有メモリに読み書きする際のサイズを決められないので実現不可能と考えました。

また、Python3.6を使用しているため、IronPythonは使用できないと考えています。

他に、C#で接続したソケットの変数をPythonに渡す方法はないでしょうか。

どなたかご教授いただければと思います。
引用返信 編集キー/
■89925 / inTopicNo.2)  Re[1]: C# ソケットの共有
□投稿者/ とっちゃん (570回)-(2019/01/18(Fri) 16:00:30)
No89924 (AA さん) に返信

> 他に、C#で接続したソケットの変数をPythonに渡す方法はないでしょうか。

ソケットというのは、System.Net.Sockets.Socket のことでしょうか?
であれば、これをプロセスをまたいで渡すことはできません。.NET プログラム同士であってもです。

また、仮に同一プロセス内の場合でも、非 .NET なコードから、.NET オブジェクトを直接操作することはできないので
この場合も同様に使うことはできません。

もし、Python とのやり取りも、WPF とのやり取りもその接続先プロセスからは、同一のものとして扱いたいのであれば
PythonとWPFとの間を何かしらのプロセス間通信で接続し(対PythonであればSocket通信が楽だと思います)、
WPFをバイパス役として、連動させるという形をとるしかありません。

WPFとPythonとでそれぞれ別々に接続しても問題ないのなら、Python側には接続先情報(IPアドレスなりURLと、PORT番号など)を渡して
Python側はPython側で独自にソケット通信する形をとるのが良いと思います。

引用返信 編集キー/
■89926 / inTopicNo.3)  Re[2]: C# ソケットの共有
□投稿者/ AA (2回)-(2019/01/18(Fri) 17:42:35)
No89925 (とっちゃん さん) に返信
ご回答ありがとうございます。

> ソケットというのは、System.Net.Sockets.Socket のことでしょうか?
> であれば、これをプロセスをまたいで渡すことはできません。.NET プログラム同士であってもです。
>
> また、仮に同一プロセス内の場合でも、非 .NET なコードから、.NET オブジェクトを直接操作することはできないので
> この場合も同様に使うことはできません。

ソケットをそのまま渡すことはできないのですね。


> もし、Python とのやり取りも、WPF とのやり取りもその接続先プロセスからは、同一のものとして扱いたいのであれば
> PythonとWPFとの間を何かしらのプロセス間通信で接続し(対PythonであればSocket通信が楽だと思います)、
> WPFをバイパス役として、連動させるという形をとるしかありません。

今回の場合は接続先からは同一のものとしたかったので、WPFをバイパスとする方法が適しているかと考えています。
まずはこの方法で、目的が達成できないか作成してみます。

ありがとうございました。
また疑問等あればここで質問させていただこうかと思います。
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ