草庐IT

tcp-keep-alive

全部标签

c++ - 如果我不先创建 TCP 连接,为什么发送数据报不起作用?

下面的c++程序应该使用套接字数据报将每一行转换为大写,以便在两个线程之间进行通信。Example:HelloWorld!HELLOWORLD!123abc!123ABC!编写的程序对我有用,但是如果我在主程序中注释bugfix()函数调用,程序会在第一行输入后无限期等待。Example:HelloWorld!这发生在Windows7上,最后一次更新是10/04/2011使用最后一个MinGW32。#include#include#include#include#include#include#includeusingnamespacestd;#defineCHECK(exp,cond

c++ - TCP Telnet 传输中丢失字符

我正在使用Winsock通过Telnet发送命令;但出于某种原因,当我尝试发送字符串时,偶尔会丢失一些字符。我使用发送:intSendData(conststring&text){send(hSocket,text.c_str(),static_cast(text.size()),0);Sleep(100);send(hSocket,"\r",1,0);Sleep(100);return0;}有什么建议吗?更新:我检查了,即使发送了所有字符,仍然出现错误。所以我决定更改Send函数,以便它发送单个字符并检查它们是否已发送:voidSafeSend(conststring&text){c

windows - 如何将打开的 TCP 套接字作为标准输入和标准输出从 Perl 传递到 Windows 应用程序

我正在尝试将来自Perl程序的开放式TCP套接字连接作为stdin和stdout传递到Windows上的外部应用程序,类似于Unix世界中的inetd。我尝试过的:使用open或POSIX::dup2并调用exec将stdin和stdout替换为套接字:#$socketisanopenTCPsocketopenSTDIN,'&',$socketordie"Unabletodupstdout:$^E";close$socket;exec($program)ordie"Unabletoexec$command:$^E";使用IPC::open3:my$pid=open3('>&'.$soc

c++ - TCP Sockets什么时候需要Keep-alive?

据我所知,在TCP套接字上保持事件状态有助于了解套接字是否刚刚打开以及两个套接字之间的连接是否实际上处于事件状态。所以,我有几个关于Winsocks2中Keepalive用法的问题想咨询一下:当keep-alive选项检测到死套接字时会发生什么?如何在不实际使用的情况下检查连接是活的还是死的send和recv?如果我必须使用send和recv然后功能首先使用keep-alive有什么意义? 最佳答案 Whathappenswhenkeep-aliveoptiondetectsadeadsocket?连接被重置,任何读取或写入都会出现

python - 为什么在 Windows 上无需设置 SO_REUSEADDR 就可以立即重用 tcp 套接字地址?

我正在阅读FoundationsofPythonNetworkProgramming并按如下方式尝试代码。https://github.com/brandon-rhodes/fopnp/blob/m/py3/chapter03/tcp_sixteen.py在注释打开socket.SO_REUSEADDR的行时,它在Linux上引发了一个OSError,一切正常。但在Win8上,即使我明确关闭socket.SO_REUSEADDR,它的行为也正常。为什么会出现这种行为? 最佳答案 通常,当服务器套接字处于TIME_WAIT状态时,必须

windows - 为什么 nmap 显示我的 TCP 服务器没有监听它应该监听的端口?

我打算以此代码为基础,发现here但是,我注意到我可以远程登录到本地主机上的此服务器。不能从另一台电脑。我进行了一次快速的nmap扫描,它报告说我选择的端口上没有任何监听。出于故障排除的目的,我关闭了防火墙,因此我已将其排除在外。来自haskellwindows程序员的线索将不胜感激。 最佳答案 似乎套接字已绑定(bind)到本地主机(127.0.0.1),这就是为什么您无法从其他机器连接它而只能从本地机器连接的原因。尝试使用BindAPI首先创建套接字,然后将套接字绑定(bind)到“任何地址”,这会将套接字绑定(bind)到本地

c++ - Win32 : Passing lParam to CreateWindow and keeping track of open windows

首先,这是我收到的文档中的描述。注意:我所要做的就是更改现有代码以满足这些要求更改代码以创建4个组织的窗口,如演示中所示。当用户关闭一个窗口时,如果还有其他窗口仍然打开它不会终止程序。用户必须关闭所有这些才能停止程序,您需要跟踪打开的窗口数(并减去当它们关闭时)。不允许使用全局变量。不允许静态。此外,您的程序必须使用lParam和CREATESTRUCT初始化计数。Possiblefunctionsandstructs:SetWindowLong()GetWindowLong()SetClassLong()GetClassLong()CREATESTRUCT现在好了,这就是我的结尾。我

windows - Windows 8 应用商店应用程序可以通过 UDP/TCP 套接字与 Windows 7 桌面应用程序通信吗?

详细说明情况:我们有两个应用程序,为简单起见,我们将它们称为A和B。两者都在Windows7上开发和运行,它们可以使用UDP/TCP进行连接和通信。现在我们要将AppB转换为Windows8以利用MetroUI。我们是否需要对AppA中的网络代码进行大量更改?它甚至可以继续在Windows7上运行并与运行在Windows8上的AppB通信吗?据我了解,Win8处理套接字的方式与以前的Windows略有不同,因此我表示怀疑。 最佳答案 只是从不同的角度来看,通信在技术上是可行的,但是explicitlyforbidden(假设您要在W

c# - 服务用完 TCP 连接

我有一个Windows服务,它是使用c#.net4.0创建的,它是一些东西的监视器-它上面有一个计时器,它有一个每5分钟运行一次的计时器。所以它有一个定时器控件,在定时器中有一个Elapsed事件:privatevoidTimer_Elapsed(objectsender,System.Events.ElapsedEventArgse){FileMonitorfileMon=newFileMonitor(url);}发生的事情是在FileMonitor中,它使用TfsTeamProjectCollection类连接到TFS服务器项目:TfsTeamProjectCollectiontp

c# - Windows 窗体应用程序基础 : Keeping all forms in one window

我正在使用VisualStudio2010在VB.net中编写一个Windows窗体应用程序(仍然欢迎C#响应)。我已经创建了我的应用程序的功能,现在正在处理UI流程。基本上,我需要让应用程序的所有功能从一开始就以介绍形式出现/消失。他们单击Introduction.vb表单中的一个选项,原始Material消失,取而代之的是他们单击的任何内容。然后,如果他们想返回上一页,则下一页上有一个后退按钮。这是原始的Introduction.vb:PublicClassIntroductionInheritsSystem.Windows.Forms.FormPrivateSubIntroduc