草庐IT

TCP和UDP区别

全部标签

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

c++ - get_id 和 GetCurrentThreadId 的区别

我想通过boost::thread::get_id和GetCurrentThreadId获取线程id。但结果却不同。我使用boost::thread来做多线程。为什么同一个线程使用get_id和GetCurrentThreadId有两个不同的id?boost::thread*dl_thread=m_thread_group.create_thread(boost::bind(download,url,dest));*threadId=*reinterpret_cast(&dl_thread->get_id());DWORDthreadIdsss=GetCurrentThreadId()

windows - metro 应用程序中的 OnLaunched 事件和恢复事件有什么区别?

我正在尝试了解应用程序生命周期。场景:我正在启动一个空白应用程序;之后我有意退出该应用程序并打开一个单独的应用程序。一段时间后,我查看任务管理器。空白应用程序似乎已暂停。然后我再次启动空白应用程序(处于暂停状态)。到那个时候,它必须命中恢复事件,对吗?1)为什么恢复事件没有触发?(应触发恢复事件,因为应用程序正在从暂停状态进入运行状态。)2)为什么会触发OnLaunched事件?3)OnLaunched事件是只在应用程序第一次启动时触发,还是在终止后激活时触发?提前致谢。 最佳答案 我对Metro应用程序还没有太多经验,但我会尝试回

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 - 在单个 udp 服务器中处理 40 个客户端的可能算法

我正在研究udp服务器/cient应用程序。我希望我的服务器一次能够处理40个客户端。现在我正在使用创建一个接收线程的方法,该线程连续接收数据,并在需要时创建一个发送线程来发送数据。由于套接字队列足够大,可以缓冲来自40个客户端的数据,所以我只使用一个接收线程。实现这种单服务器多客户端的其他可能方法是什么申请? 最佳答案 您当然可以运行多个服务器线程,但每个线程都必须监听不同的UDP端口。如果这对您来说没问题,请尝试使用多个线程,但不要超过您拥有的处理器内核数。由于线程切换,除此之外的任何事情都会减慢整个过程。您可以尝试的另一件事是

windows - iperf UDP 服务器启动错误,绑定(bind)失败 : Operation not permitted

操作系统:Windows8,工具:Jperf,内部工具:iperf我想启动UDP服务器监听器。使用的命令:-iperf-s-u-P0-i1-p5001-l1470-fk-t10服务器监听UDP端口5001接收1470字节的数据报UDP缓冲区大小:64.0KB(默认)错误如下:-绑定(bind)失败:不允许操作recvfrom失败:参数无效评论:-1)我的Windows防火墙已关闭2)杀毒软件关闭访问WindowsUDP端口需要更改注册表吗?有什么想法吗? 最佳答案 我遇到了同样的问题,但只是在我之前成功运行iperf-s-u的同一台

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

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

windows - 从 cmd.exe 或 Windows Run 运行命令的区别

我实际上是在尝试以另一个用户的身份运行一个应用程序,虽然它在cmd.exe提示符下运行得非常好,但如果我使用Windows运行提示符,它并不总是有效(这实际上取决于我使用的是什么应用程序)正在尝试运行)。例如,在cmd.exe或W-Run提示符下(使用WindowsXP或Windows7)都可以正常工作:runas/user:MEregedit.exe虽然这仅在cmd.exe提示符下有效(在这两种情况下它都会询问我的密码,但如果在WinXP或W7上从W-Run启动之后它什么都不做):runas/user:MEservices.msc它实际上有点不一致,使用cmd它始终有效,但使用Win

c# - EWX_POWEROFF 和 EWX_SHUTDOWN 有什么区别?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion我刚刚澄清了EWX_SHUTDOWN和EWX_POWEROFF之间的区别。是不是EWX_SHUTDOWN将系统带到可以手动关闭的点,EWX_POWEROFF将它带到同一点,还会关闭系统电源?提前致谢:)