在目前一些桌面端.net系統的應用中,需要多個子系統視窗進行資訊交換,對於部署在同一臺電腦上的各個子系統,可以通過整合windows系統的訊息傳遞方式進行訊息傳遞,但是假如將各個子系統部署在不同的電腦上,這種實現方式就有一定的侷限性,要涉及到網路中的不同電腦進行通訊,.net提供了可以建乙個小的http伺服器,可以繫結計算機的埠進行通訊,且提供了非同步的實現方式,能實現無阻塞的訊息通訊。
具體**實現如下圖:
//啟動乙個監聽, 並繫結埠,msdn有詳細引數說明
public bool startlistener(string prefixes)
listener.start();
var result = listener.begingetcontext(new asynccallback(listenercallback), listener);
issuccess = true;
}return issuccess;
}//關閉服務監聽
public void stoplistener()
listener.close();}}
//非同步接收資料,並進行下一次的事件監聽
private void listenercallback(iasyncresult result)
messageaction(resstr);}}
catch (exception ex)
byte buffer = system.text.encoding.utf8.getbytes(responsestring);
response.contentlength64 = buffer.length;
output.write(buffer, 0, buffer.length);
output.close();
result = listener.begingetcontext(new asynccallback(listenercallback), listener);
}因為使用的是非同步監聽,效率還是挺高的,延遲很短,能保證乙個視覺上的系統執行。
c 應用程式開發
與access建立聯絡 oledb c access 讀寫資料庫 c 連線access資料庫及增刪改查操作 c 讀取資料庫有多少條資料 c int轉成string,string轉成int 1,int轉成string 用tostring 或者convert.tostring 如下 例如 int var...
C 應用程式之間傳值
c 應用程式之間傳值 由於做東西需要進行不同應用程式之間傳值,為了省資源不想用第三方物件作為載體,去動態幫助那裡看了看system.diagnostics.process.start 方法的過載形式,以及譚浩強那本c語言的書中關於main函式引數的作用,想出了下面這種傳值方法,現在拿上來跟大家分享 ...
C 開發WINDOWS應用程式時訊息的處理
windows應用程式是靠訊息驅動的,在vc中我們通過classwizard可以為某視窗類新增訊息處理函式,classwizard將為你新增訊息對映,對於windows訊息,生成的訊息處理函式過載了基類的虛擬方法。而在c 中如何處理訊息呢?本文針對vs.net beta1環境下的c 簡單地介紹win...