From 3f87bf0ae7394cdd7d52428f1f6b4361434c7cc4 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 15 五月 2020 13:28:33 +0800
Subject: [PATCH] hhhhhhhhh
---
ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs | 39 +++++++++++++++++++++++++++++++++++++--
1 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
index 04c6a57..c446b42 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Common/Application.cs
@@ -333,7 +333,7 @@
public static class FindGateWaySocket
{
//鏈湴Socket
- public static System.Net.Sockets.Socket busSocket;
+ public static Socket busSocket;
/// <summary>
/// 鍚姩Socket鎺ユ敹鍜屽彂閫佸姛鑳�
@@ -379,7 +379,7 @@
{
get
{
- return null == busSocket ? false : true;
+ return busSocket == null ? false : true;
}
}
@@ -391,12 +391,47 @@
{
try
{
+ //妫�娴嬭繛鎺ョ姸鎬�
+ CheckConnectiton();
+
Start(7624);
busSocket.BeginSendTo(bytes, 0, bytes.Length, SocketFlags.None, iPEndPoint, new AsyncCallback(asyncEndSend), null);
}
catch { }
}
+ /// <summary>
+ /// 妫�娴嬭繛鎺ョ姸鎬�
+ /// </summary>
+ private static void CheckConnectiton()
+ {
+ if (busSocket == null) { return; }
+
+ bool blockingState = busSocket.Blocking;
+ try
+ {
+ byte[] tmp = new byte[1];
+
+ busSocket.Blocking = false;
+ busSocket.Send(tmp, 0, 0);
+ //tcp杩樺湪杩炴帴鐫�
+ busSocket.Blocking = blockingState;
+ }
+ catch (SocketException e)
+ {
+ // 10035 == WSAEWOULDBLOCK
+ if (e.NativeErrorCode.Equals(10035))
+ {
+ //Still Connected, but the Send would block
+ }
+ else
+ {
+ //tcp宸茬粡鏂紑浜嗚繛鎺�
+ Stop();
+ }
+ }
+ }
+
/// <summary>
/// 寮傛鍙戦�佹暟鎹粨鏉�
/// </summary>
--
Gitblit v1.8.0