C# WebSocket本地和远程端点

vktxenjb  于 2023-03-30  发布在  C#
关注(0)|答案(1)|浏览(233)

简单地说,是否可以在已经示例化并完全开放的 outboundSystem.Net.WebSockets.WebSocket示例上确定以下任何一项:

  • 套接字的本地IP
  • 套接字的本地端口(临时)
  • 远程IP(如果连接到主机 * 名称 *,则尤为重要)
  • 远程端口(是的,我明白了,我们应该已经知道了,但问题是什么是可能的)
vuktfyat

vuktfyat1#

没有任何简单的方法可以做到这一点

原因很简单,因为实际上可以在任何读/写流上创建WebSocket,而这些流可能根本不是网络流,所以拥有这样的属性并没有什么意义。
也许它可以将内部流作为属性公开,但这可能会破坏封装。
碰巧的是,ClientWebSocket确实包含一个字段private WebSocketHandle? _innerWebSocket,你可以从这个字段中使用反射来获取流。假设这个流是一个NetworkStream,那么你可以从它的Socket属性中获取信息。
这样的方法对于任何对未记录的内部设计的库更改都是非常脆弱的。

相关问题