问题标签 [system.net.sockets]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
50 浏览

c# - NetworkStream.Read 的缓冲区字节数组大小

我正在尝试学习 TCP(希望很快 UDP)的基础知识来制作一些多客户端应用程序。我注意到我看到的每个示例都有一个像这样的缓冲区:

我注意到它总是为字节缓冲区设置一个大小,并且很好奇这是否是一种要求/更好的做事方式以及为什么这比我写的更好:

0 投票
0 回答
141 浏览

.net - Socket.BeginSend( 列表中的部分发送)?

我对System.Net.Socket.BeginSend方法有疑问。

如果在参数SocketFlags.None中指明,会在被触发之前全部发送吗?socketFlagsbufferscallback

  • 如果上述问题的答案是否定的:该EndSend方法只返回已发送缓冲区的字节。如何知道ArraySegment发送了哪些s?我需要愚蠢地循环缓冲区以找到发送的缓冲区?是否有可能ArraySegment发送一半?

  • 如果上述问题的答案是肯定的:它的大小是否有任何限制buffers?如果我buffers一次发送 10MB 怎么办?

一般来说,我不明白 .NET 如何在ArraySegment内部处理。发送前缓冲区会ArraySegment合并成一个大缓冲区吗?

0 投票
1 回答
5025 浏览

c# - 无协议的 C# SuperSocket

问题很简单:我已经阅读了整个SuperSocket文档,但我不明白是否有一种方法可以在不实现协议的情况下使用它。

我不需要发送特定的命令,而只需要发送一个或数百个字节,这取决于许多因素。我需要更新一个使用简单套接字的旧 TCP 服务器,它是我在 4 年前使用 System.Net.Sockets 库制作的,我想使用像 SuperSocket 一样的井注释库来实现更强大的解决方案。

这是个好主意吗?

先感谢您。

0 投票
2 回答
1497 浏览

c# - 用于实时聊天的 Net.Sockets、WCF 或 ASP.NET

我想实现我的想法,开发一个具有客户端/服务器端的应用程序,并将客户端连接到服务器,以便他们能够实时传输消息。

所以我将使用 C# 进行开发,但问题是:我应该使用什么?我不知道哪种方法更适合那个聊天。我需要在 Net.Sockets、WCF 和 ASP.NET 之间进行选择。所以我请你帮我做选择。如果我使用 ASP.NET,我将不得不使用 selfhost 的东西,因为我不想创建一个站点或类似的东西来使用聊天。

0 投票
1 回答
3355 浏览

android - 是否可以在 unity3d for android 中使用 TcpClients?

我正在尝试制作一个通过 Unity 5.4 与我的服务器通信的 andorid 应用程序。设备需要在同一网络中才能执行此操作。

为此,我使用 System.Net.Sockets 和 TcpClient 连接到我的服务器。当我从编辑器中运行它或将其构建为 Windows 独立时,一切正常。托管服务的 pc 和运行独立的不同 pc 之间的通信是可能的,并且可以按预期工作。一旦我将它构建为 .apk 并将其安装在我的智能手机上,我就会得到一个 SocketException。我的手机也卡了很长一段时间

正在使用 TcpClient,这可能在带有 unity3d 的 android 上吗?

我得到的例外是:

我确保两台设备都在同一个网络中,例如我托管服务器的 PC 的 IP 是 192.168.178.24,我的智能手机的 IP 是 192.168.178.113。

所需端口已打开,防火墙允许数据通过。

我在 Unity 中运行这段代码:

我仔细检查了从播放器首选项收到的 IP 地址是否正确,是的。

有人知道是什么原因导致它甚至无法建立连接吗?我在我的电脑上尝试了 Wireshark,它没有显示任何传入的包,所以我的猜测是错误有时是在建立连接期间。

这是我的智能手机日志输出的图像: LogCat 输出

编辑:服务器代码

0 投票
2 回答
1757 浏览

c# - 在 xamarin 表单 pcl 上安装 System.Net.Sockets

我有个问题。我需要在 xamarin 表单上使用 TcpClient,但无法安装“System.Net.Sockets”。我不能使用 Nuget 来安装它。

错误是:

无法安装软件包“System.Net.Sockets 4.3.0”。您正在尝试将此包安装到以“.NETPortable,Version=v4.6,Profile=Profile44”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。有关详细信息,请联系包作者。

在此处输入图像描述

在 iOS 和 Android 项目上,它可以安装,但在这个便携式项目上,它不会安装。

我该如何解决这个问题?

谢谢

0 投票
1 回答
1223 浏览

c# - 创建 websocket 连接时出现 System.Net.Sockets.SocketException

我是 websocket 的新手。我在 .net 4.5 框架中创建了一个控制台应用程序,并使用库“WebSocketSharp”创建了一个示例 websocket 客户端。我有以下代码

但我无法创建与在另一台机器上运行的 websocket 服务器的连接。我收到这样的错误消息

与我的代码相关的问题是什么?有什么好的 websocket 库可用吗?

0 投票
0 回答
204 浏览

c# - 如何反转 TcpListener/TcpClient 的角色?

我有一个不寻常的问题,我希望得到意见。我是网络编程的新手,正在通过 System.Net.Sockets 命名空间中的 .NET“TcpListener”和“TcpClient”类学习套接字编程。不过,我需要以不寻常的方式使用它们:我需要能够在计算机 A 和计算机 B 之间建立连接。计算机 A 将运行“TcpClient”类的实例,并尝试打开与计算机 B 的连接它正在运行“TcpListener”的一个实例。这部分看起来很简单。但是,一旦建立连接,我需要转换角色,以便计算机 A 成为等待并响应计算机 B 发送的消息的机器。换句话说,计算机 A 成为服务器,计算机 B 成为客户端。此角色转换必须使用计算机 A 在最初充当客户端时打开的相同连接。我不清楚如何做到这一点,因为我正在阅读的所有示例和(优秀的)书籍“C# 中的 TCP/IP 套接字”总是在其预定义的角色中使用这些类。实际上有办法做到这一点吗?我是否必须下拉到“Socket”类而不是使用更抽象的“TcpListener/TcpClient”类?

0 投票
1 回答
355 浏览

c# - Socket.SendFile send big file error 87

I use the standard method of sending a file.

But there is one problem. If the file is large, more than 1.5 GB, then I get an error WSA_INVALID_PARAMETER - 87

How can I fix this and can I even do it or look for another option for sending the file?

0 投票
1 回答
707 浏览

c# - IOControl 上的 System.Net.Sockets 异常

在 Windows 7(.Net 4.6.1)上,这段代码出现异常:

System.Net.Sockets.Socket.IOControl(Int32 ioControlCode, Byte[] optionInValue, Byte[] optionOutValue) 中引用的对象类型不支持尝试的操作

这适用于我的 VM 上的 Windows 8。