问题标签 [network-programming]
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.
c# - 以编程方式登录到 Windows XP
有人听说可以通过编程方式登录到 Windows xp,我想修改域控制器对用户进行身份验证的方式,如果用户以我的特殊方式进行身份验证,它会将用户名和密码返回给在客户端机器上工作的服务,所以它应该使用从 DC 传递的凭据登录用户,而无需等待用户插入其原始凭据。
c# - 使用 .Net 获取域中的计算机列表
如何使用 C# 获取域中的计算机名称列表?
sockets - 不接受的连接会发生什么?
假设 localhost:80 上的侦听套接字和使用以下连接的客户端: telnet localhost 80
问题是我只想接受有限数量的并发客户端,假设只有一个。在那之后,我根本不接受任何。
我看到的问题是:netstat -a 是建立了下一个客户端连接。是的,我不处理它,但是在系统级别上它显示为 ESTABLISHED,客户端可以发送数据并可能给系统带来额外的开销。
我看到的唯一方法是继续接受客户端但断开它们。我对吗?
network-programming - 我在哪里可以找到 ICQ 用来开发我自己的客户端的协议堆栈?
我要开发 ICQ 客户端,我只是想知道在哪里可以找到参考来了解他们使用的协议?任何链接、书籍等。
顺便说一句,如果我没记错的话——所有 ICQ 客户端——QIP、Miranda、ICQ Lite 等——都使用相同版本的协议与 ICQ 服务器正确通信?
java - Java 套接字编程
我正在使用 java 套接字构建一个简单的客户端/服务器应用程序并尝试使用 ObjectOutputStream 等。
当它谈到通过套接字传输对象时,我一直在关注这个 url http://java.sun.com/developer/technicalArticles/ALT/sockets上的教程。
请参阅我的客户端代码http://pastebin.com/m37e4c577但是这似乎不起作用,我无法弄清楚什么不起作用。底部注释掉的代码是直接从教程中复制出来的——当我只使用它而不是创建客户端对象时,这很有效。
谁能看到我做错了什么?
c# - 如何为测试目的模拟网络故障(在 C# 中)?
我正在为一个新的应用程序构建一个可以称为 DAL 的东西。不幸的是,与数据库的网络连接是一个真正的问题。
我希望能够在我的测试范围内临时阻止网络访问,以便我可以确保我的 DAL 在这些情况下按预期运行。
更新:有很多手动方法可以禁用网络,但如果我可以在测试本身中启用/禁用它肯定会很好。
c# - 如何获取域控制器 IP 地址
如何以编程方式获取域控制器 IP 地址C#
?
java - Java NIO:快速发送大消息会导致数据包被截断和数据丢失
我遇到了这个令人讨厌的问题,即从 Java (NIO) 服务器(运行 Linux)快速连续地向客户端发送多条大消息会导致数据包被截断。消息必须很大并且发送速度非常快,问题才会发生。这基本上是我的代码在做什么(不是实际的代码,而是或多或少发生了什么):
因此,如果数据包足够长并且尽可能快地发送(即在这样的循环中没有延迟),那么在另一端它通常会出现这样的情况:
存在数据丢失,数据包开始一起运行,因此数据包 5 的开头(在此示例中)与数据包 4 的开头到达相同的消息。它不仅仅是截断,而是一起运行消息。
我想这与 TCP 缓冲区或“窗口大小”有关,或者这里的服务器只是提供比操作系统或网络适配器或其他东西更快的数据可以处理它。但是我该如何检查并防止它发生呢?如果我减少每次使用 sc.write() 的消息长度,然后增加重复次数,我仍然会遇到同样的问题。这似乎只是短时间内数据量的问题。我也没有看到 sc.write() 抛出任何异常(我知道在上面的示例中我没有检查,但在我的测试中有)。
如果我能以编程方式检查它是否还没有准备好接收更多数据,我会很高兴,并延迟,等待它准备好。我也不确定是否“sc.socket().setSendBufferSize(1024*1024);” 有任何影响,或者如果我需要在 Linux 方面进行调整。有没有办法真正“冲洗”出 SocketChannel?作为一种蹩脚的解决方法,例如,我可以尝试在任何时候尝试发送超过 10KB 的消息时显式强制发送缓冲的任何内容(这在我的应用程序中并不常见)。但我不知道有什么方法可以强制发送缓冲区(或等到它发送)。谢谢你的帮助!
c# - C# 网络编程和资源使用
我一直在研究如何最好地用 C# 编写“正确”的网络代码。
我已经看到了许多使用 C# 的“using”语句的示例,我认为这是一个很好的方法,但是我看到它在各种表达式中的使用不一致。
例如,假设我有一些这样的代码:
显然,这段代码将非常不稳定。所以,我看到了一些将 using 放在 tcpClient 上的代码,这看起来不错。但是,NetworkStream 不是也有需要清理的资源吗?StreamReader/Writer 呢?
我是否需要将所有 4 个语句包装在嵌套的 using 语句中?
如果是这样,到了处置的时候会发生什么?StreamWriter 不会关闭流并因此关闭套接字吗?那么当 StreamReader、NetworkStream 和 TcpClient 分别处理它们时会发生什么?
这就引出了另一个问题。StreamReader 和 StreamWriter 都由同一个流组成,谁拥有它?难道他们不都认为自己拥有它,因此都试图摧毁它吗?或者框架是否知道流已经被销毁并且只是默默地忽略它?
似乎 using 语句仅对链中的最后一条语句是必需的,但是如果在 GetStream() 中抛出异常会发生什么?我认为它不会正确清理套接字,因此似乎有必要使用多余的使用来确保不会发生这种情况。
有没有人知道任何关于使用 .net 进行网络编程的好书,最好是 c#,其中包括关于异常处理和资源管理的章节?或者网上有什么好文章?我能找到的所有书籍都来自 .NET 1.1 时代(Microsoft .NET Framework 的网络编程、.NET 中的网络编程等),所以这似乎是一个需要一些好的资源的主题。
编辑:
请不要让马克的非常好的评论阻止其他人对此发表评论:)
我想听听其他人关于资源管理的书籍推荐或意见,尤其是在异步使用方面。