欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
C# Socket異步編程,重啟服務(wù)器,客戶(hù)端連接不上,怎么辦?
 
藍星星回復于30日14點(diǎn)55分 
暈倒,都說(shuō)了啊,解決辦法就是在每次收到一個(gè)包以后,發(fā)送一個(gè)0字節空包,發(fā)的出去就說(shuō)明沒(méi)斷,發(fā)不出去就會(huì )出現“遠程主機強行關(guān)閉了一個(gè)連接”的異常,撲獲這個(gè)異常就可以了,斷開(kāi),等待重連,接下來(lái)什么的就是你的事了
另外我問(wèn)下你,在服務(wù)端斷開(kāi)以后,客戶(hù)端的CPU是不是一直處于100%的狀態(tài)?如果是的話(huà),那么這個(gè)辦法絕對可以解決的!
 
冷光乾回復于30日15點(diǎn)34分 
我的問(wèn)的是怎么連呀,不是問(wèn)怎么知道服務(wù)器斷了!能寫(xiě)一個(gè)異步連接的方法嗎?
 
好子娘回復于30日16點(diǎn)13分 
至于斷開(kāi)以后怎么重連,暈死,你第一次怎么連后面就怎么連啊,比如說(shuō)斷開(kāi)以后,就進(jìn)入一個(gè)循環(huán),來(lái)循環(huán)進(jìn)行連接,如果連接成功,那么跳出這個(gè)循環(huán),開(kāi)始進(jìn)入另一個(gè)循環(huán)來(lái)接受數據
 
xiaoxue9757回復于30日16點(diǎn)56分 
SOCKET一直就有這個(gè)問(wèn)題,服務(wù)端斷開(kāi)以后,相信你的客戶(hù)端的CPU一直處于100%,因為再不停的無(wú)限循環(huán)的接受一個(gè)0字節包
解決辦法就是發(fā)送心跳包,或者每收到一個(gè)包,就發(fā)送一個(gè)0字節包,斷開(kāi)了的話(huà)就會(huì )異常
 
家有大寶回復于30日17點(diǎn)37分 
關(guān)注。呵呵
 
dd970322回復于30日18點(diǎn)14分 
可能是你的 客戶(hù)端 沒(méi)有 收到斷開(kāi)連接的 信息。 這個(gè)需要在通信 協(xié)議里面 加個(gè) 心跳 報文, 每隔多少時(shí)間 收不到 就 斷開(kāi) 重連
 
瀟湘紫藤回復于30日18點(diǎn)57分 
我剛才找到一種方法,但是不是知道是不是最好的,就是在我的方法里面把Socket重新生成一個(gè)

_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 
tianyi回復于30日19點(diǎn)42分 
其實(shí)主要的問(wèn)題是服務(wù)端如果是強制斷開(kāi),也就是物理斷開(kāi)或者直接結束了進(jìn)程這種斷開(kāi),客戶(hù)端是接收不到斷開(kāi)請求的,也就是說(shuō)這個(gè)時(shí)候的客戶(hù)端并不認為斷開(kāi)了,而且客戶(hù)端還在不停的接受一個(gè)0字節的數據包,無(wú)限循環(huán),所以還會(huì )導致客戶(hù)端的CPU一直處于100%的狀態(tài)
這個(gè)問(wèn)題我之前寫(xiě)一個(gè)C/S通訊程序的時(shí)候碰到過(guò),解決辦法找了一天都是些非常麻煩的方案,于是我自己想了個(gè)辦法,就是在每次接受數據的時(shí)候,發(fā)送一個(gè)0字節包,這樣的話(huà)服務(wù)端如果斷開(kāi),那么客戶(hù)端就會(huì )開(kāi)始無(wú)限循環(huán)接受一個(gè)0字節包,那么再接受以后,按我說(shuō)的方案,還會(huì )在返回一個(gè)0字節包,但是肯定無(wú)法發(fā)送,所以會(huì )異常,撲獲就OK了??!
客戶(hù)端代碼:

'接受數據,收到后返回一個(gè)垃圾包
XXX.Send(Encoding.Unicode.GetBytes("0")) '垃圾包
'如果服務(wù)端已斷開(kāi),那么肯定發(fā)不出去,結果異常,撲獲就行了,VB中是TRY,C#就不知道了
 
sr2008回復于30日20點(diǎn)27分 
先開(kāi)客戶(hù)端 這時(shí)候服務(wù)器沒(méi)開(kāi) 連接語(yǔ)句已經(jīng)執行 以后當然就連不上了
應該加個(gè)連接檢測 如果發(fā)現沒(méi)連上或斷開(kāi)后多少時(shí)間自動(dòng)重連接
 
急也沒(méi)用回復于30日21點(diǎn)08分 
你第一次怎么連就是怎么連。。。
 
lw334554回復于30日21點(diǎn)54分 
網(wǎng)羅編程我關(guān)注
 
神行鼠回復于30日22點(diǎn)37分 
我問(wèn)的就是怎么重連呀?
我專(zhuān)門(mén)寫(xiě)了一個(gè)重連函數,第一次(服務(wù)器先啟動(dòng)的情況),用這個(gè)函數是可以連的,然后我把服務(wù)器關(guān)閉再開(kāi)啟,就連不上去了,說(shuō)遠程主機強行關(guān)閉了一個(gè)連接。
還有一種情況是,我先開(kāi)客戶(hù)端,這個(gè)時(shí)候客戶(hù)端處于一直連接狀態(tài),等我開(kāi)了服務(wù)器就立馬連上了,在重啟服務(wù)器又連不上了。
我的重連函數是:
        /// <summary>
        /// 異步連接
        /// </summary>
        private void ReConnectAsync()
        {
            SocketAsyncEventArgs ConnectAsyncEvent = new SocketAsyncEventArgs();
            ConnectAsyncEvent.Completed += new EventHandler <SocketAsyncEventArgs>(ConnectAsync_Completed);
            ConnectAsyncEvent.UserToken = _Socket;
            ConnectAsyncEvent.AcceptSocket = _Socket;
            ConnectAsyncEvent.RemoteEndPoint = GetEndPont();
            //開(kāi)始連接事件
            CallEvent(OnConnecting, this, new EventArgs());
            //異步連接
            try
            {
                //重連次數增加
                _RetryCount++;
                if (!_Socket.ConnectAsync(ConnectAsyncEvent))
                {
                    if (!Connected)
                    {//沒(méi)連接繼續連
                        AutoConnectMeoth();
                    }
                }
                //在異步連接完的回調方法(ConnectAsync_Completed)里面開(kāi)始異步接收
               
            }
            catch
            {
                if (_DebugMode) { throw; }
            }
        }
 
愛(ài)咋咋的回復于30日23點(diǎn)14分 
1.tcp/ip  服務(wù)器中斷客戶(hù)端肯定是會(huì )得到通知,但是這個(gè)時(shí)候你可以通過(guò)timer來(lái)循環(huán)橋接。如果是FLASH SOCKET那可以通過(guò)JS來(lái)進(jìn)行循環(huán)橋接。

2.UDP/IP  由于是無(wú)鏈接的,所以需要通過(guò)心跳包來(lái)進(jìn)行報文監測??蛻?hù)端接受心跳包報文超過(guò)設定的心跳時(shí)間間隔,那就嘗試循環(huán)嘗試是否存在服務(wù)器,如果心跳包報文仍能按照間隔發(fā)包,那就證明已經(jīng)在鏈接狀態(tài)中。。。
 
滴滴嘟嘟回復于31日02點(diǎn)47分 
你所陳述的并不是你代碼的問(wèn)題,而是解決這種異常狀況的思路問(wèn)題,
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
一封給“X教授”的回信(討論Socket通信)
在C#中使用異步Socket編程實(shí)現TCP網(wǎng)絡(luò )服務(wù)的C/S的通訊構架(一)----基礎類(lèi)庫部分-.NET教程,C#語(yǔ)言
C#編寫(xiě)高性能網(wǎng)絡(luò )服務(wù)器(源碼)
TCP三次握手/四次揮手
讓Ubuntu和Android同時(shí)運行(Ubuntu on Android)
譯文:如何使用SocketAsyncEventArgs類(lèi)(How to use the SocketAsyncEventArgs class)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久