草庐IT

c# - Windows 上的套接字 - 我是否遗漏了程序中的某些内容?

感谢您提前阅读和回答!我编写了一个简单的C#程序,通过套接字与第三方工具连接。每当我发送超过1024个字符的字符串时,第三方软件就会抛出错误。现在,我试图查明这是我的套接字代码问题还是其他软件(EnergyPlus)的问题。只有几行代码,如果有人有建议,将不胜感激!usingSystem.IO;usingSystem.Net;usingSystem.Net.Sockets;...privateintport=1410;privateTcpListenerlistener;privateStreams;privateStreamReadersr;privateStreamWritersw

windows - 来自另一个线程的套接字关闭调用是否总是使阻塞的 recv() 线程唤醒?

我找不到太多的文档来说明这是否应该发生:某个线程打开一个TCP(或其他流)套接字线程1开始阻塞recv()线程2使用SHUT_RDWR(或者我认为是SHUT_RD)在套接字上调用shutdown()线程1现在从其阻塞调用中“醒来”,并返回零,就像另一方关闭其套接字时一样。此行为出现在现代Linux和FreeBSD系统上。我还没有用任何其他人测试过它。这里是对MicrosoftMSDN帮助页面的评论:http://msdn.microsoft.com/en-us/library/windows/desktop/ms740481%28v=vs.85%29.aspx表明此行为在Windows

windows - 是否有针对 "block"一系列端口的 Windows 套接字 API 调用/选项 à la SO_EXCLUSIVEADDRUSE

在this(相当旧的)文章,作者指出:"端口阻塞端口阻塞允许应用程序阻止其他应用程序对指定范围内的端口执行特定绑定(bind)。阻止端口范围时,应用程序必须选择MaxUserPort设置值(默认为5000)+1和49151(对于未安装服务包的WindowsXP和WindowsServer2003)或65535(适用于WindowsServer2003ServicePack1)。在被阻止的端口范围内,不应存在与端口的绑定(bind)。WindowsSockets返回阻塞范围内的最后一个端口号作为句柄。取消阻止(移除阻止)时,WindowsSockets取消阻止与取消阻止请求具有相同左边缘

c++ - 将网络字节顺序(大端)转换为小端

我从MSDN中找到了以下函数它将unsignedlong从网络字节转换为主机字节顺序的unsignedlong,即在little-endian中定义为:u_longWSAAPIntohl(_In_u_longnetlong);MSDN文档说它可以转换32位数字。但是因为在C++中,正如我所读到的那样long和int是不一样的,即long不能保证是32位或相同的大小一个整数INT_MAX。所以,我想知道是否有类似的函数采用32位值,例如unsignedint而不是unsignedlong? 最佳答案 documentation特别指出

C 编程 - 套接字 ("Server"在聊天中显示 "Client"名称)

我还是C套接字编程的新手,多亏了这个网站,我学到了很多有用的东西,但我找不到如何让服务器在聊天中显示客户端名称,我知道我需要使用命令:“发送(SOCKETs,constchar*buf,intlen,intflags);”,但我不知道我做错了什么,语法错误或定位错误,idk,这些是代码:(我把这个“//服务器:#include#include#include#include//Sleep();#includeWSADATAdata;SOCKETwinsock;SOCKADDR_INsock;charbuffer[1024];charbuffer2[1024];charnome[50];

c++ - 如何防止 WSASend() 阻塞我的 UI 线程?

我想使用带有完成例程的重叠I/O来处理客户端连接。在我的UI线程中我想使用WSASend(),但是为了让系统调用我的回调函数来通知我数据已经发送,UI线程必须处于等待状态状态,但这会卡住我的UI!我该如何解决这个问题? 最佳答案 我同意@DavidHeffernan的观点——UI线程应该做UI的事情。IO线程肯定需要绑定(bind)和端口(服务器),或对等地址和端口(客户端)。来自ConnectEx或AcceptEx的套接字肯定更好地加载到IO线程中,但是带有(此时未定义)套接字成员的Socket类肯定可以在UI线程中创建并通知IO

node.js - Node 套接字 IO 客户端 Windows 路径太长无法安装

我在尝试安装browsersync时遇到此错误。我无法靠近驱动器盘符来使这条路径适合,但无论哪种方式,这都是一个非常糟糕的问题。当我运行npminstall时,这个错误以红色出现。我应该担心吗?其他一切似乎都已正确完成。C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(308,5):errorMSB3491:Couldnotwritelinestofile"Release\obj\validation\validation.tlog\validation.lastbuildst

c# - TCP/IP 套接字端口监听

我有一个简单的问题,我可以运行两个tcp套接字监听器吗但是他们每个人都在不同的端口上监听,比如一台服务器,但是要监听2个端口?因为我对tcp编程和所有套接字编程都有两难选择,这是我从未在网上读到过的东西。谢谢这是我想做的事情的模式ThisisTheDiagramoftheConnection我们有一个IP和两个不同的连接端口我希望这些信息是针对问题的完整信息,并且可以让您轻松理解我的想法。再次感谢 最佳答案 caniruntwotcpSocketlistenersbuteveryeachofthemtolistenonadiffer

windows - system.net.sockets 和 windows 10 错误?

我在Windows10中遇到一个非常奇怪的应用程序问题。它由同一台计算机中的多个.exe组成,它们之间使用system.net.sockets库通过套接字进行通信。我遇到的问题是,在新计算机上安装Windows10后,安装所有Windows更新,然后安装该应用程序,与套接字的连接无法正常工作,应用程序失败。最奇怪的是,如果您将计算机单独放置1-2天,应用程序就会开始正常运行。安装1803版本更新后,同样发生了,它停止工作,然后在一两天后工作。知道它会是什么吗?有没有人见过类似的东西? 最佳答案 看来真的和你说的1803更新有关症状:

windows - 套接字服务器的高效重叠 I/O

这两种不同模型中的哪一种会更有效(考虑抖动、处理器缓存的利用、整体设计等等)?1IOCP和启动X个线程(其中X是计算机拥有的处理器数量)。这意味着我的“服务器”将只有1个IOCP(队列)用于所有请求和X线程来服务/处理它们。我读过很多讨论这种设计效率的文章。使用此模型,我将拥有1个也将关联到IOCP的监听器。让我们假设我可以弄清楚如何使数据包/请求保持同步。XIOCP(其中X是计算机拥有的处理器数量),每个IOCP有1个线程。这意味着每个处理器都有自己的队列和1个线程来服务/处理它们。使用此模型,我将有一个单独的监听器(不使用IOCP)来处理传入连接并将SOCKET分配给正确的IOCP