Tcp Socket非同步通訊例項

2021-05-25 04:53:57 字數 2419 閱讀 9905

/// /// socket客戶端實體類,作用傳送和接收資料報

///

public class sockethelper

catch (argumentexception ae)

catch (socketexception ex)

}#region methods

/// /// socket通訊機連線函式

///

public bool connect()

else

return isconnect;

}catch (objectdisposedexception ex)

}/// /// socket連線返回函式

///

/// 表示非同步操作的狀態

private static void connectcallback(iasyncresult ar)

catch (exception e)

}/// /// socket通訊機關閉函式

///

public void close()

//關閉socket通訊

_client.close();

//獲得關閉成功資訊

closeinfo = "通訊機已關閉!";}}

catch (exception e)

}/// /// 資料傳送函式

///

/// 需傳送的資訊

/// /// 返回傳送是否成功值

///

public bool send(string messagesend)

catch (socketexception se)

//傳送標誌事件等待

senddone.waitone();

//返回真

return (true);

}/// /// 資料傳送返回函式

///

/// 表示非同步操作的狀態

private static void sendcallback(iasyncresult ar)

catch (exception e)

}/// /// 資料接收函式

///

/// 已連線的socket通訊機例項(客戶端)

/// /// 返回接收資料

///

public string receive()

catch (objectdisposedexception oe)

catch (socketexception se)

catch (exception e)

}/// /// 資料接收返回函式

///

/// 表示非同步操作的狀態

private static void receivecallback(iasyncresult ar)

else

// 置位資料已接收標誌位

receivedone.set();}}

catch (objectdisposedexception oe)

catch (socketexception se)

catch (exception e)

}#endregion

#region 變數

private static manualresetevent senddone = new manualresetevent(false);

private static manualresetevent connectdone = new manualresetevent(false);

private static manualresetevent receivedone = new manualresetevent(false);

private static string connectinfo = "";

private static string closeinfo = "";

private static string sendinfo = "";

private static string revinfo = "";

private static string revdata = "";

private static string revtempstring = "";

private endpoint _remoteep = null;

private socket _client = null;

public delegate void errordelegate(string erromessage, socket soc, int errocode);

public event errordelegate onerror;

#endregion

}public class stateobject

非同步通訊例項(一)Server

using system using system.drawing using system.collections using system.componentmodel using system.windows.forms using system.data using system.text ...

AJAX簡單非同步通訊例項分析

客戶端 向伺服器發出乙個空請求。如下 伺服器端 向客戶端直接返回乙個字串。如下 複製 如下 response.write 非同步測試成功,很高興 問題一 由於ie 瀏覽器會自動快取非同步通訊的結果,不會實時更新伺服器的返回結果。但firefox 會正常重新整理 為了解決非同步連線伺服器時ie 的快取...

IIC 通訊例項

iic 標籤 1 標準速率 100kbit s 快速 400kbit s 高速 4mbit s 2 2線通訊協議 3 起始與停止 scl高時,sda由 高 低 變化,起始訊號 sda由 低 高 變化,停止訊號 4 空閒狀態 sda和scl都處於高電平狀態 5 資料傳輸與應答 資料必須是8位,且高位在...