2012-01-30 25 views
1

我剛開始爲Mono開發一個示例應用程序。主要任務是在android平板電腦上實現一個tcp-socket服務器,以偵聽來自客戶端的連接。連接後客戶端開始發送實時數據,android應用程序在屏幕上顯示數據。這對於在android上實現服務器端很重要。我正在使用Mono for Android/C#。我已經有大約一週的谷歌搜索和樣本瀏覽。是否有可能使用C#在Mono中爲Android安裝異步套接字?

我的問題是:如果異步TCP套接字工作在android單聲道框架或不。因爲我的代碼在「windows應用程序」到「windows應用程序」平臺中使用時工作正常。但是當我把它改爲「windows應用程序」到「android」時,連接就會斷開。

我知道問題是工資問題,我知道你們都期望樣品來源......如果我有一個地方放樣品,我肯定會把它!

  • 我使用單聲道的Android阿比12模擬器
  • 我已經在使用仿真器telnet控制檯「再導向」命令
  • 連接建立但數據並不在服務器上接收到轉發的TCP端口(機器人側)

任何幫助/樣品/導向將會理解

+0

你在設備上試過了嗎?我知道讓模擬器的網絡設置非常瘋狂。我不明白爲什麼使用套接字在MonoDroid中不起作用,如果它在Windows中工作。 – jonathanpeppers 2012-01-30 12:57:08

+0

快速不要說** MonoTouch **是「Mono for iOS」,而「Mono for Android」是「Mono for Android」。他們分享了很多,但他們是不同的產品。 – poupou 2012-01-30 13:01:16

+0

更新:感謝球員閱讀和評論的時間。我剛剛發現了這個問題。 'windows'版本的服務器和'android'版本之間的唯一區別在於'消息反序列化'命名空間。 (blabla.mono.net/blabla.windows.net),它已通過更改DeserializationAppDomainBinder的「BindToType」方法中的程序集名稱解決。現在消息到達服務器端很好,順利:)再次感謝。 – Afshin 2012-01-30 21:04:21

回答

3

有可能使用單聲道具有異步插槽中的Android。這個場景的windows應用程序沒有特定的區別。我的問題實際上是從反序列化導致連接停止的消息。 問題通過添加新的DesrializationBinder和更改Android命名空間的AssemblyName來解決。