单声道如何使用BSD套接字?

标记

System.Net.Sockets.Socket在Linux上与mono一起使用时,大概mono最终会使用BSD套接字(在Windows上使用Winsock套接字)。

看一下单声道的来源,Socket.Bind()它发出了外部调用:

// Creates a new system socket, returning the handle
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private extern static void Bind_internal(IntPtr sock,
                     SocketAddress sa,
                     out int error);

对我来说,单声道必须引用一个公开了这种方法签名的本机库,并且该本机库将负责跨平台的实现(因为Bind_internal在BSD或Winsock套接字上没有命名函数)。

所以我的问题现在变成单声道使用哪个本机库?

理查德

你有点误会

[MethodImplAttribute(MethodImplOptions.InternalCall)]

这意味着该方法的实现在Mono实现中而不是在运行时加载的程序集中实现。它很可能调用OS功能(对于套接字,它肯定会:为什么要重新实现OS服务)。

但是它不必调用OS服务,请从.NET参考源中的以下实现中考虑System.String

public extern int Length {
  [System.Security.SecuritySafeCritical]  // auto-generated
  [ResourceExposure(ResourceScope.None)]
  [MethodImplAttribute(MethodImplOptions.InternalCall)]
  get;
 }

String.Length 直接嵌入到CLR中,而不是OS API中。

简介:InternalCall是指在运行时内部本地实现。该实现可能调用OS方法,也可能不会调用OS方法:您不能从此级别区分。

回答您的问题:我希望MonoBind_internal最终会调用bind(2)但带有一些包装(.NETSocket比OS API使用的* nix文件描述符具有更多的状态和逻辑)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单声道和抽象

来自分类Dev

如何检测单声道?

来自分类Dev

如何在C程序中单声道AOT生成的SO文件中使用方法?

来自分类Dev

如何在镜头上使用单声道功能进行修改?

来自分类Dev

如何配置单声道以使用4G以上的内存?

来自分类Dev

如何用录音录制单声道?

来自分类Dev

使用单声道等待UIO中断

来自分类Dev

单声道魔术如何?

来自分类Dev

无法安装单声道

来自分类Dev

如何比较“单声道”中的值?

来自分类Dev

尝试升级后单声道损坏,无法使用apt

来自分类Dev

我应该如何包括函数返回一个单声道时使用Mono.zipWith?

来自分类Dev

如何解决单声道音频的无效形状

来自分类Dev

使用流量数据将流量减少为单声道

来自分类Dev

单声道魔术如何?

来自分类Dev

作家单声道的记忆

来自分类Dev

ffmpeg如何使用音频声像滤镜将立体声转换为单声道

来自分类Dev

如何使用ffmpeg和向下混音选择单声道的左音频通道?

来自分类Dev

如何设置bash以单声道运行* .exe?

来自分类Dev

使耳机输出单声道

来自分类Dev

如何使用C处理BSD套接字中的3种方式send()和recv()

来自分类Dev

单声道破包装

来自分类Dev

当使用单声道源以立体声录制视频时,如何重新编码视频的音频?

来自分类Dev

如何查看用于分析的单声道 MLPD 文件

来自分类Dev

单声道模糊耳机

来自分类Dev

如何使用单声道将 .so 文件链接到托管 DLL

来自分类Dev

如何安装单声道 5.18.0?

来自分类Dev

如何在另一个具有循环依赖性的单声道中使用单声道

来自分类Dev

无法安装单声道

Related 相关文章

热门标签

归档