windows phone使用Beetle實現對象互動的TCP通訊

來源:互聯網
上載者:User
文章目錄
  • 介面制定
  • 詳細代碼實現

    Beetle提供了基於Silverlight的實現Beetle.SL,由於WP7開發也是提供了Socket的支援所以Beetle.SL是完全可以在WP7下使用。還有ProtoBuf.net同樣也支援WP7,因此可以通過Beetle.SL+ProtoBuf.net就能在WP7下實現基於對象傳輸的TCP通訊應用。

    首先建立一個WP項目,分別引用Beetle.WP.DLL,Beetle.WP.ProtoBuf.DLL和protobuf-net.DLL;以上組件分另可以到http://beetlesl.codeplex.com/和http://code.google.com/p/protobuf-net/擷取得到.接下來做個簡單的客戶查詢應用.

介面制定

主要功能是登陸後就可以進行一個客戶資訊查詢,可以輸入需要查詢的客戶名稱。

詳細代碼實現

 建立一個基於ProtoBuf的Tcp串連,並在程式載入過程綁定相關事件

private Beetle.ProtoBufAdapter.ProtoBufChannel mChannel = new Beetle.ProtoBufAdapter.ProtoBufChannel();        private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)        {            MessageAdapter.LoadMessage(GetType().Assembly);            mChannel.Connected += OnConnected;            mChannel.Disposed += OnDisposed;            mChannel.Receive += OnReceive;            mChannel.Error += OnError;        }

通過連線按鍵事件進行一個TCP串連,並在串連成功後把查詢按鈕變成可用.

private void cmdConnect_Click(object sender, RoutedEventArgs e)        {            mChannel.Connect(txtIPAddress.Text, 4520);        }        private void OnConnected(object sender, EventChannelArges e)        {                       this.Dispatcher.BeginInvoke(() =>            {                cmdConnect.IsEnabled = false;                cmdSearch.IsEnabled = true;                txtStatus.Text = "Connected";            });        }

在查詢按鈕中進行一個查詢物件查詢,同時在接收事件中進行資料繫結即可。

private void cmdSearch_Click(object sender, RoutedEventArgs e)        {            Packages.Search search = new Packages.Search();            search.CompanyName = txtCustomerName.Text;            MessageAdapter.Send(mChannel, search);        }        private void OnReceive(object sender, EventChannelReceiveArgs e)        {            MessageAdapter adapter = (MessageAdapter)e.Message;            if (adapter.Message is Packages.SearchResult)            {                Packages.SearchResult result = (Packages.SearchResult)adapter.Message;                this.Dispatcher.BeginInvoke(() =>                {                    lstCustomers.ItemsSource = result.Customers;                });            }        }

    這樣一個簡單的使用者查詢就完成了,在windows phone下使用Beetle進行TCP通訊是不是很簡單的事情:)

如果你有需要可以到http://beetlesl.codeplex.com/ 擷取相關代碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.