简而言之,是否可以在已经实例化且完全打开的outbound System.Net.WebSockets.WebSocket实例上确定以下任一项:

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

推荐答案

No there is not any simple way to do this.

这样做的原因很简单,因为实际上可以在任何读/写流上创建WebSocket,这可能根本不是网络流.因此,拥有这样一处房产并没有真正的意义.

也许它可以将内部流公开为属性,但这可能会 destruct 封装.你可以试着给这个打Github request分.

碰巧的是,ClientWebSocket确实包含一个字段private WebSocketHandle? _innerWebSocket,您可以使用反射从其中获取流.假设流是NetworkStream,那么您可以从它的Socket属性中获取信息.

这样的方法对于任何对未经文档记录的内部设计的库更改都是非常脆弱的.

Csharp相关问答推荐

.请求()不适用于Azure AD B2C的C#

c#处理大量tcp连接

在C#c/await中,延迟长度是否会影响控制返回调用者?

使用ElasticsearchClient设置忽略属性.默认MappingFor<>

使用特定格式的JsonConvert序列化对象

CS0103 dlibdotnet和www.example.com facerect不在上下文中

数组被内部函数租用时,如何将数组返回给ArrayPool?

我需要两个属性类吗

如果存在对CodeAnalysis.CSharp的引用,则不能引用netStandard2.0库

Azure Function应用(. NET 8)不将信息记录到应用洞察

如何使用NumberFormatInfo

为基本审计设置Audit.EntityFramework.Core

N层解决方案上的依赖注入-删除样板

EFR32BG22 BLE在SPP模式下与PC(Windows 10)不连接

JsonSchema.Net删除假阳性判断结果

如果是,我怎么才能让这个加75,如果不是,我怎么才能减go 100?

如何在Polly重试策略成功之前将HttpClient请求排队?

RCL在毛伊岛应用程序和Blazor服务器应用程序.Net 8.0中使用页面

如何将默认区域性更改为fr-FR而不是en-US?

使用免费的DotNet库从Azure函数向Azure文件共享上的现有Excel文件追加行