關於C#Socket斷開重連問題
TCP客戶端可以向TcpServer傳送資料包時,若網路斷開,原來的連線就會失效,出現以下錯誤提示:
斷開套接字連線後,只能通過非同步方式再次重新連線,而且只能連線到不同的 EndPoint。在操作完成前,在將不會退出的執行緒上必須呼叫 BeginConnect
導致無法傳送資料包,如何處理呢?主要原因還是已斷開的連線無法再使用,只能重新建立,因為我們可以採用自動重新建立連線的方式來解決,如下程式碼所示:
private static Socket _SocketClient;
///<summary>
/// Socket客戶端自動重新建立
///</summary>
public static Socket SocketClient { get {
if (_SocketClient == null) {
_SocketClient = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
_SocketClient.Connect(new IPEndPoint(IPAddress.Parse("IP地址"
return _SocketClient;
}
--斷開自動重新建立連線
if (!_SocketClient.Connected) {
_SocketClient.Close();
_SocketClient= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_SocketClient.Connect(new IPEndPoint(IPAddress.Parse("IP地址"), _port)); //配置伺服器IP與埠
return _SocketClient;
}
return _SocketClient;
}
}
呼叫時直接用 SocketClient.send()方法傳送資料即可;
相關推薦
關於C#Socket斷開重連問題
TCP客戶端可以向TcpServer傳送資料包時,若網路斷開,原來的連線就會失效,出現以下錯誤提示: 斷開套接字連線後,只能通過非同步方式再次重新連線,而且只能連線到不同的 EndPoint。在操作完成前,在將不會退出的執行緒上必須呼叫 BeginConnect
C++基礎--完善Socket C/S ,實現客戶端,伺服器端斷開重連
相關文章 1 // WindowsSocketServer.cpp : 定義控制檯應用程式的入口點。 2 // 3 4 #include "stdafx.h" 5 #include <iostream&
C++ Socket C/S ,實現客戶端,伺服器端斷開重連
// WindowsSocketServer.cpp : 定義控制檯應用程式的入口點。 #include "stdafx.h" #include <iostream> #include <string> #include <Windows.h> #include <
說說“用戶無線網絡時不時斷開重連”的故障!
protocol bit 觀察 stat *** 一段 官方 查看 為什麽 故障現象:用戶反映很多的人的筆記本連接無線時,不定時的就會斷開無線網絡,然後重新連接。網絡環境:1、所有AP由無線控制器統一管理,采用本地轉發,品牌為優科。2、所有AP由思科2960 POE交換機提
Android基於XMPP Smack Openfire下學習開發IM(五)連接斷開重連
pen ide get ref ces 最好 string smack led 學習過程中大家都碰到過連接被斷開的問題給困擾吧,下面教大家如何做到連接斷開後,重新連接首先要創建連接監聽器,用來監聽連接狀態,這裏我寫了一個類繼承了ConnectionListener,重寫了裏
websocket斷開重連解決方案,基於子慕大詩人部落格修改 健壯強化版
歡迎大家來到Altaba的部落格 2017年11月27日 相信隨著H5的演進,我們越來越多接觸到websocket的使用,本身就使用此技術並不難,但是在開發中會遇到各種無法預測的原因,有瀏覽器相容問題,有後臺的意外斷開,狀態百出。 本人前端開發遇到這樣的問題:websoc
websocket 斷開重連
websocket 5行程式碼模子: 1.例項化WebSocket物件 var old=new WebSocket("ws://xxx.xxxxx.xxx.xxxx"); 2.回撥事件的處理 old.onerror = function(){} old.onop
sokcet 斷開重連問題
socket伺服器已經斷開而主專案這邊完全不知道,如何判斷遠端伺服器是否已經斷開連線,如果斷開那麼需要重新連線。 首先想到socket類的方法isClosed()、isConnected()、isInputStreamShutdown()、 isOutputS
Android基於XMPP Smack Openfire下學習開發IM(五)連線斷開重連
學習過程中大家都碰到過連線被斷開的問題給困擾吧,下面教大家如何做到連線斷開後,重新連線 首先要建立連線監聽器,用來監聽連線狀態,這裡我寫了一個類 繼承了ConnectionListener,重寫了裡面5個方法,最重要的兩個方法connectionClosed()和conn
java socket tcp重連等 處理粘包、沾包
這個程式是前段時間寫的德州撲克棋牌手程式,現在把以前寫的東西整理出來。 下面是socket部分,還是很有幫助的: private void start(String severIP, int serverPort) { // TODO Auto-generated me
再淡spring jdbc 連線池斷開重連設定
先看一段錯誤日誌: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allow
解決連線伺服器zookeeper時報以下錯誤 並且大量連線斷開重連
likely server has closed socket, closing socket connection and attempting reconnect 解決方法: 1 檢視伺服器zookeeper是否正常開啟 2 檢察防火牆是否關閉(有時重啟會開啟)
gprs經常斷開重連
1、gprs連線: 現象:發現連線上,大概過一分多鐘就會斷開,再過幾分鐘才可以連線上 除錯:發現發包到8.8.8.8,發包失敗,然後傳送AT指令沒有資料返回 處理:1、換一個心跳伺服器,例如公司測試的伺服器、電腦上面的DNS(主要是看這個伺服器是否
C# 實現撥號重連
alt getc 重新 ive windows value 用戶名 for lena 先斷開網絡連接 1 /// <summary> 2 /// 斷開網絡連接 3 /// </summary> 4 public static
QT 中Socket客戶端與伺服器異常斷開後重連
在現在的專案開發中,經常要使用TCP/IP協議來進行通訊,但有時候與伺服器端的連結由於網路問題導致連線異常或斷開,這就需要我們的軟體能自動重連,在Linux中,我們的思維一般是通過心跳包來監控連線是否斷開,有時候還單獨開一個執行緒,但是在QT中,就變得簡單多了,當連線異常
Windows C語言 Socket程式設計 client端(客戶端)--斷線重連版
瞭解了最基礎的C語言客戶端的編寫流程,稍稍加以改動即可實現斷線重連。 當伺服器掉線時,客戶端會以固定的頻率不停的重連。 #include <stdio.h> #include <winsock2.h> #pragma comme
C++ TCP socket程式設計中的小陷阱(服務端accept 不阻塞 和 客戶端connect 重連失敗)
在編寫一個使用C++ socket實現的TCP服務端與客戶端小軟體時接連碰上2個小陷阱, 終歸是實踐不足,基本功不紮實。 第1個問題: 服務端的accept函式沒有阻塞 程式執行到accept這裡時直接就跳了過去,根本沒停下來。 懷疑過socket
C# 判斷Socket斷線重連
定時器裡面的事件 private void isConnendTimer_Tick(object sender, EventArgs e) { // 首先,Socket類的Connected屬性只表示最後一次I/
C# + Socket斷線重連
轉自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=28765492&id=3793532 感謝作者的分享,收藏 一、網上常用方法 1、當Socket.Conneted == false時,
C# + Socket斷線重連 整理
1.如果是採用TCP/udp協議進行連線,檢查windows防火牆是否開放相應SocketTCP/udp埠; 簡單的檢測方法是關閉windows防火牆後再試; 2.檢查防火牆軟體是否開放相應SocketTCP/udp埠; 簡單的檢測方法是關閉防火