问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何设置socket的Connect超时

发布网友 发布时间:2022-04-20 08:11

我来回答

2个回答

热心网友 时间:2023-10-04 04:55

针对套接字操作设置默认超时的概述StreamSocket类实现Windows运行时应用中的TCP套接字。TCP套接字必须建立连接才能发送或接收任何网络数据。Windows8.1、WindowsPhone8.1和WindowsServer2012中实现的基础TCP套接字会针对所有的TCP连接套接字操作设置默认超时。对于每个来源和目标地址对,在使用主机名或终结点时,默认超时为3分钟(180秒)。因此,如果目标主机名有两个IP地址,那么,只有在经过大约6分钟之后,连接操作才会超时。对于使用Windows运行时应用的客户体验来说,这个默认超时可能过长。因此,使用StreamSocket类的应用可能希望针对流套接字连接操作设置较短的自定义超时。在发送或接收网络数据时,DatagramSocket和StreamSocket类没有默认超时。因此,任何发送或接收操作都将永远等待。使用套接字的Windows运行时应用可能希望针对这些操作设置超时以获取更好的客户体验。StreamSocketListener类将永远侦听和等待传入的连接请求。如何针对套接字操作设置自定义超时JavaScript语言支持计时事件,这些事件可以按指定的时间间隔执行某些代码。JavaScript计时事件setInterval()-按指定的时间间隔(毫秒)反复执行某个函数。setTimeout()-在等待指定的毫秒之后执行一次某个函数。计时事件函数是在HTMLDOMWindow对象中实现的。WinJS命名空间为包括WinJS.Promise对象的JavaScript功能提供特殊的Windows库。timeout(timeout,promise)方法包装setTimeout函数。如果在timeout参数中指定的毫秒数内未完成承诺,则Windows应用商店应用可以使用timeout(timeout,promise)方法来取消此承诺。如果在timeout参数中指定的时间间隔内未完成套接字操作,则可以调用timeout(timeout,promise)方法并将套接字操作作为promise参数以使该操作超时。只要套接字操作仍在挂起,就能将其取消。WinJS.Promise对象和timeout(timeout,promise)方法可以与Windows运行时应用中的任何异步操作一起使用,包括所有的异步套接字操作。对于正常的完成操作,可以在timeout(timeout,promise)方法调用之后添加逗.then地。对于所有这三个类来说,使用超时的基本模型是相同的。以下讨论使用StreamSocket上的连接操作作为示例。在使用DatagramSocket或StreamSocket对象发送或接收网络数据时,或者在使用StreamSocketListener对象侦听传入连接时,可以使用相同的模型来实现超时。创建一个StreamSocket。调用timeout(timeout,promise)方法并将其中一个StreamSocket.connectAsync方法作为promise参数。在源代码的末尾添加then(successFunction,errorFunction)方法来处理成功和错误案例。在出错时,关闭套接字。在取消StreamSocket操作承诺之后,将无法再使用已取消的StreamSocket。以下示例将针对StreamSocket连接操作实现自定义超时。JavaScriptvarclientSocket=null;vartimeout=10000;//10secondsfunctionopenClient(){varserverHostName=newWindows.Networking.HostName("");varserviceName="http";//displayStatus("Client:connectionstarted.");clientSocket=newWindows.Networking.Sockets.StreamSocket();//varpromise=clientSocket.connectAsync(serverHostName,serviceName)WinJS.Promise.timeout(timeout,clientSocket.connectAsync(serverHostName,serviceName).then(function(){//displayStatus("Client:connectioncompleted.");//Doyoursocketoperationshere.},function(reason){//Therearemanyreasonsforthisfailure:thepromisemighthave//timedout,ortheserverhostrefusedtheconnection,orthere//wasanTCPissue,orseveralotherpossibilities.//displayStatus("Client:connectionfailed.");//displayStatus(reason.message);clientSocket.close();clientSocket=null;}));}

热心网友 时间:2023-10-04 04:56

针对套接字操作设置默认超时的概述StreamSocket类实现Windows运行时应用中的TCP套接字。TCP套接字必须建立连接才能发送或接收任何网络数据。Windows8.1、WindowsPhone8.1和WindowsServer2012中实现的基础TCP套接字会针对所有的TCP连接套接字操作
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么重装诺基亚手机系统 诺基亚720系统怎么升级 诺基亚500如何轻松升级贝拉系统? 诺基亚6系统怎么能升级到90 改个网名!里面带“豪”字的,有非主流风格的!不要繁体。 男人味十足硬汉的网名 比较豪气潇洒的网名 上海买二手房首付是多少 上海外地户籍购房首付多少 上海外地首套首付多少钱 外地户口在上海购二手房首付多少 常见socket编程,为什么connect总连接不上 socket客户端程序在connect操作时一直返回SOCKET_E... linux下socket编程中connect()函数 异步模式的socket在connect之后怎么知道connect成... 如何在qt中使用connect指令来写socket 华为无线耳机配对苹果手机 CAD中内部块与外部块命令分别是什么?区别是什么?... CAD中写块的图标命令在操作界面的哪个位置? CAD建块的命令是什么 cad 查找块命令 凯迪拉克XT5可以链接安吉星吗? 怎样设置cad的写块快捷命令 凯迪拉克XT5顶配车型如何打开四驱系统? 凯迪拉克xt5的xt 25t什么意思 凯迪拉克xt5多少机油最合适? cad块命令怎么使用 求凯迪拉克XT5车架号详细解析谢谢 新款凯迪拉克XT5上市,怎么选最合适? AutoCAD中建立块的命令有哪些 凯迪拉克xt5怎么样,有什么通病吗? socket编程中connect()函数链接问题 VC++ socket中的connect()函数 懂socket编程的进 我用socket的connect函数去连接... tcp连接过程: 为什么一个socket在connect之后关闭... 微信小程序wx.connectSocket连接成功,wx.onSocket... socket能accept几个connect? MFC封装的socket类connect函数怎么实现Internet的... socket connect函数。 Socket高手救我,我为什么老是connect失败 ppt如何给图片插手机边框 求助:Socket.connect ppt边框怎么去掉,手机版 手机ppt文本框动画制作 手机做ppt怎么放大文本框 怎么制作手机ppt 手机制作PPT是否能控制文本框出现的顺序? 手机怎么做PPT 手机ppt上如何实现拖拽 手机打开的PPT文本框与电脑上的文本框位置不一样,... 如何提取手机ppt中图片