十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
怎么在WCF中使用nettcp協(xié)議實(shí)現(xiàn)通訊?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
創(chuàng)新互聯(lián)成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元呼中做網(wǎng)站,已為上家服務(wù),為呼中各地企業(yè)和個人服務(wù),聯(lián)系電話:189820811081.建立服務(wù)服務(wù)端
還是用上次的代碼,提供一個user類,實(shí)現(xiàn)一個方法
[ServiceContract] public interface IUser { [OperationContract] string GetUserInfo(); } [ServiceContract] public interface IUser { [OperationContract] string GetUserInfo(); }
2.ServiceHostManager公有類
通過公有類可以減少代碼編寫量,可以保存下來,以后用的時候 直接拿來用
public interface IServiceHostmanager : IDisposable { void Start(); void Stop(); } public class ServiceHostManager:IServiceHostmanager where TService:class { private ServiceHost host; public void Dispose() { Stop(); } public ServiceHostManager() { host=new ServiceHost(typeof(User)); host.Opened+= (sender, e) => { Console.WriteLine("wcf服務(wù)已經(jīng)啟動監(jiān)聽{0}",host.Description.Endpoints[0].Address); }; host.Closed+= (sender, e) => { Console.WriteLine("wcf服務(wù)已經(jīng)啟動關(guān)閉{0}", host.Description.Endpoints[0].Address); }; } public void Start() { Console.WriteLine("正在啟動wcf服務(wù){(diào)0}",host.Description.Endpoints[0].Name); host.Open(); } public void Stop() { if (host != null && host.State == CommunicationState.Opened) { Console.WriteLine("正在關(guān)閉wcf服務(wù){(diào)0}", host.Description.Endpoints[0].Name); host.Close(); } } public static Task StartNew(CancellationTokenSource conTokenSource) { var task = Task.Factory.StartNew(() => { IServiceHostmanager shm = null; try { shm = new ServiceHostManager (); shm.Start(); while (true) { if (conTokenSource.IsCancellationRequested && shm != null) { shm.Stop(); break; } } } catch (Exception ex) { Console.WriteLine(ex.Message); if (shm != null) shm.Stop(); } },conTokenSource.Token); return task; } }
3.配置的相關(guān)參數(shù)
配置文件中注意配置 Service,binding,behaviors. Service中配置endpoint 指明abc ,binding中配置tcp通訊的要關(guān)參數(shù),behaivor中配置http請求的 地址
4.啟動服務(wù)
控制臺中啟動服務(wù)
static void Main(string[] args) { Console.WriteLine("初始化..."); Console.WriteLine("服務(wù)運(yùn)行期間,請不要關(guān)閉窗口。"); Console.Title = "wcf net tcp測試 "; var cancelTokenSouce = new CancellationTokenSource(); ServiceHostManager.StartNew(cancelTokenSouce); while (true) { if (Console.ReadKey().Key == ConsoleKey.Escape) { Console.WriteLine(); cancelTokenSouce.Cancel(); break; } } }
5wcftesttoos軟件測試
軟件路徑位于,可以根據(jù)自己安裝vs的目錄去找。
D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE
測試
關(guān)于怎么在WCF中使用nettcp協(xié)議實(shí)現(xiàn)通訊問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。