注意:這篇文章是另一篇文章:Mgen Clo工程0.1和簡明教程的一部分。
由於Windows Phone 7.5自身環境的限制(不允許監聽TCP串連)。所以Clo工程Windows Phone 7版不支援ConnectionPoolHost類型,ListenerWaiter類型,以及PoolConnection類型的Spawn方法。因為這些成員都需要TCP的監聽功能。
另外Windows Phone 7.5版Clo工程還不包含Mgen.Clo.Utilities命名空間內的LocalIPAddress公用類型。
本文重點講的是Windows Phone 7.5裝置和Clo工程PC端TCP監聽方的串連問題,PC端的監聽方可以使用ListenerWaiter或者ConnectionPoolHost類型。Windows Phone 7.5裝置可以通過三種方式來和PC端的監聽方進行串連。
1:使用Zune和資料線串連
首先Windows Phone下的Clo工程需要PC端的IP地址,這裡的IP地址我試了下就可以是PC上的乙太網路網路介面卡的IP地址,使用者可以通過ipconfig命令來擷取PC的乙太網路適配器IP地址,如:
使用者可以使用Clo工程的樣本程式來測試,在Clo工程Windows Phone的測試程式中輸入PC端監聽方的IP地址和連接埠號碼就可以了:
串連完成後,PC端的Clo工程示範程式會收到串連資訊,如:
Windows Phone版的Clo工程示範程式會提示:
進入伺服器
本地串連資訊:127.0.0.1:59589
遠端連線資訊:219.244.114.50:11700
用戶端列表
==========
1 - 127.0.0.1:59563
==========
可以看到,Zune實際上是直接在PC本地上開啟一個連接埠,這個連接埠作為一個代理,會接收或發送資料給串連的Windows Phone裝置。
2. 使用Wifi串連
使用Wifi串連,使用者可以也可以使用ListenerWaiter實現PC和Windows Phone裝置的通訊,同時可以使用ConnectionPoolHost把一個PC和多個Windows Phone裝置串連起來。
因此,對於Windows Phone裝置,串連PC端的監聽方同樣需要知道PC端的IP地址,只不過這次是不乙太網路的,而是無線網IP地址,同樣使用ipconfig命令,找到當前的無線網適配器的IP地址,如:
然後使用這個IP地址在Windows Phone中串連PC端的監聽端。串連成功,Clo工程Windows版的示範程式會有如下輸出:
Windows Phone版的Clo工程示範程式會提示:
進入伺服器
本地串連資訊:192.168.51.101:49175
遠端連線資訊:192.168.51.1:11700
用戶端列表
==========
1 - 127.0.0.1:59387
==========
可以看到,PC端和Windows Phone端都是作為獨立的網路節點串連在同一個區域網路環境下的。
3. 使用Internet串連
這種方法首先要求任何一個串連方都可以訪問Internet,同時程式沒有被防火牆攔截。一旦條件都成功的話,Windows Phone端只要使用PC端的Internet IP地址就可以串連了。