最近在製作一個兩個app之間能夠互相溝通並且傳遞一些指令的專案,這種專案適合用socket而不是URLconnection,原因如下。 A socket can implement almost a duplex kind of functionality, whereas a url connection can connect to a given URI and read its content. 經過一些研究之後了解到,要建立一個 Socket 連線,我們必須寫兩支程式,分別代表 Client 端以及 Server 端。在網路上搜尋到一個多人聊天室的範例程式,如下: Server(Server可以在能夠執行java的環境下直接執行) 1 2 client(android studio) 1 2 3 這邊值得一提的是,開Socket Server的主機ip要如何獲得,port可以隨意指定,但是ip要如何獲得呢?這邊提供一個方式 1 new Thread( new Runnable() { @Override public void run () { ChatServer server = new ChatServer() ; server.setContext(MainActivity. this ) ; server.start() ; } }).start() ; 搭配Server.java在MainAvticity加上上面這段,可以印出IP。順帶一提的是,使用Android Studio的模擬器的話,模擬器server的IP為10.0.2.15。兩台模擬器之間要互相連線的話可以參照其他網路上設定虛擬IP的方法。 在別得class創建一個新的activity 最後提一下小心得,Socket的應用於app的小心得,由於創建clinet thread的activity跟發送資料與收到資料時的activity通常不會一樣,我們必須要所有的activity收到資料都要能夠透過那個資料,做一些處理UI的事情,例如創建新的activ...
留言
張貼留言