【问题标题】:mono, unix sockets单声道,unix 套接字
【发布时间】:2010-12-17 11:37:08
【问题描述】:

有人知道创建 unix 域套接字并以异步方式侦听它的 c#(单声道)应用程序示例吗?

【问题讨论】:

  • 那不是和.Net例子一样的代码吗?您可能想从寻找任何合适的 c# 示例开始。
  • 不完全是,我想使用 .NET 中不可用的 Mono.Unix 命名空间
  • 我猜您需要从 Mono.Unix 套接字实现中获得某些特定的东西,而这些实现在 System.Net.Sockets 中是不可用的。只是出于好奇,它是什么?我忍不住好奇。
  • @Lazarus:它只是使用 UnixEndPoint 而不是 IPEndPoint

标签: c# mono named-pipes


【解决方案1】:

可能是这个问题的方法。

       var listeningPort = new Socket(AddressFamily.Unix, SocketType.Stream, ProtocolType.IP);
        var endPoint = new UnixDomainSocketEndPoint(path);

        listeningPort.Bind(endPoint);

        listeningPort.Listen(0);

        while (true)
        {

            var socket = await listeningPort.AcceptAsync();

            var result = await socket.ReceiveAsync(transferBuffer, CancellationToken.None);
            //...
        }

【讨论】:

    【解决方案2】:

    看看ModMonoWebSource.cs 中的GracefulShutdown() 方法。在创建套接字之后,它是 unix 域套接字还是 IPv4 套接字不再重要。异步接受连接是在 Mono.WebServer/ 文件夹中完成的,但我会让你找出在哪里以及如何。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 2013-01-17
      • 1970-01-01
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      相关资源
      最近更新 更多