草庐IT

async_send

全部标签

C++ socket的send()导致系统错误10053

我正在尝试从我的客户端向我的服务器发送一条消息(目前它们都在同一个进程中运行,但我认为这不重要)。连接建立良好(我可以通过“CurrPorts”看到它-比TcpView用户友好得多)。但是,当我发送消息时,出现错误:“已建立的连接已被主机中的软件中止。”(编号10053)然后连接中断...相关代码如下:boolClient::Send(void*msg,intsize){intsockId=m_socket.GetId();structsockaddr_inremote=m_socket.GetRemotePoint().GetBasePoint();constchar*buf=(co

c++ - IO 完成端口和套接字 send()

根据我目前对IOCP的理解,当我创建一个完成端口并将一个套接字关联到它时,当一个套接字准备好被读取时,将向完成端口发送一个通知。但是send()是如何处理的,我的意思是如果我想发送数据,我应该只调用send()吗?完成端口怎么样,它是否收到有关send()的任何通知? 最佳答案 BasedonmyunderstandingsofarofIOCP,whenIcreateacompletionportandassociateasockettoit,anotificationwillbesenttothecompletionportwhe

c++ - 我可以从不同的线程调用 socket send() 吗?

如果我有一个名为s的socket,我可以在不同的线程中执行此操作吗:线程1:send(s,"HellofromThread1");线程2:send(s,"HellofromThread2");是否保证这两个字符串会一个接一个地放入发送缓冲区(我不关心哪个先放),或者它们是否有可能混在一起?注意:也许这个问题的标题应该是:“Issocketsend()threadsafe”(但我不太确定线程安全是什么意思). 最佳答案 答案是否定的。一般来说,send()不保证数据是整block发送的。您始终需要检查send()返回的值,以了解实际发

c# - Windows 服务器 2008 : Is opening smtp port not enough for sending mail?

我用C#编写了一个发送邮件通知的简单程序。它在Windows7上运行良好,但在Server2008上运行失败。我已经阅读了一些相关内容,但我看不出是什么阻止了我发送邮件。我已经打开了端口587(Gmail的SSL端口)传出和传入(TCP),但仍然没有成功。我什至为整个程序打开了防火墙。WindowsServer中是否有我应该注意的特定设置?*编辑-除了Windows自己的防火墙外,没有其他防火墙。堆栈跟踪:System.Net.Mail.SmtpException:Failuresendingmail.--->System.Net.WebException:Unabletoconnec

windows - 如何显示 'Send to' 和 'Open With' 上下文菜单?

前段时间我问过howtopopuptheWindowscontext(right-click)menuforacertainfileinDelphi.但是,即使一切正常(几乎)正常,“发送到...”和“打开方式...”子菜单也没有任何项目,即使当我在资源管理器中右键单击相同的文件名时,它们也是如此工作正常。(例如,“发送至...”有“桌面(创建截图)”、“电子邮件收件人”等)。我怎样才能让这些菜单出现? 最佳答案 几年前,雷蒙德·陈(RaymondChen)在关于托管上下文菜单的多部分系列文章中写到了这个确切的问题。他文章的关键主题

windows - 通过 Windows 套接字发送大于 1 MB 的大数据,即使用 Send 函数

我希望通过Windows套接字发送API发送大于1MB的大消息。有没有一种有效的方法可以做到这一点,我不想循环然后分块发送数据。我在某处读到您可以增加套接字缓冲区大小,这可能会有所帮助。谁能详细说明一下。感谢任何帮助 最佳答案 你应该,事实上必须循环以分块发送数据。如Beej的网络指南中所述:"send()returnsthenumberofbytesactuallysentout—thismightbelessthanthenumberyoutoldittosend!See,sometimesyoutellittosendawho

c# - 为什么 "await"必须在 "async"方法中?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Whydoestheasynckeywordexist我有两种方法。一种是普通方法(MyMethod),一种是异步方法(MyMethodAsync)。我收到编译错误。staticstringMyMethod(){varresult=awaitMyMethodAsync();//compileerrorherereturnresult;}asyncstaticTaskMyMethodAsync(){/**performmylogichere...**/Thread.Sleep(1000);return"yes"

c# - 我是否应该将 async/await 添加到单行函数中?

这个问题在这里已经有了答案:Whyuseasyncandreturnawait,whenyoucanreturnTaskdirectly?(8个答案)关闭5个月前。我是否应该将async/await添加到单行函数中,例如:publicasyncTaskGetFoo(){returnawaitHandleAsync(....);}或者如果参数不需要异步调用并且我可以简单地写,这是不需要的开销:publicTaskGetFoo(){returnHandleAsync(....);}

c# - 使用 Async & Await 的 ASP.NET C#5 异步 Web 应用程序

研究过异步web开发的概念,具体来自this源,我创建了一个示例应用程序来证明这个概念。该解决方案由2个ASP.NETWebAPI应用程序组成。第一个是模拟的慢端点;它等待1000毫秒,然后返回一个名为Student的自定义类列表:publicIEnumerableGet(){Thread.Sleep(1000);returnnewList{newStudent{Name=@"Paul"},newStudent{Name=@"Steve"},newStudent{Name=@"Dave"},newStudent{Name=@"Sue"}};}这是学生类:publicclassStude

c# - Async/Await VS Task.Run : When to use ? 如何使用?

好吧,我希望我掌握了async/await的基础知识,但仍有一些问题在我脑海中挥之不去。但是现在我说的就是这个问题了。假设在这个简单的例子中staticvoidMain(string[]args){Method();Console.WriteLine("MainThread");Console.ReadLine();}publicasyncstaticvoidMethod(){awaitTask.Run(newAction(LongTask));Console.WriteLine("NewThread");}publicstaticvoidLongTask(){Thread.Sleep