當前位置:首頁 » 安卓系統 » android多線程socket編程

android多線程socket編程

發布時間: 2023-06-09 17:22:11

⑴ 自己寫了一個Android的APP,想用socket連接伺服器

最近我在在寫一個APP,用到了socket,在自己電腦上搭建的伺服器,具體過程: 用eclipse寫Java代碼,創建一個serversocket,用來監聽客戶端的請求; 客戶端在發送數據前,首先創建一個Socket,然後直接請求伺服器即可。自己寫了一個Android的APP,想用socket連接伺服器

⑵ 使用socket編程,實現一個多線程聊天程序,使用9977埠,要求服務端使用兩個線程(一個接收,一個輸出)

對於通信來說,不存在絕對的伺服器和客戶端,誰在等待別人來,誰就是伺服器,誰主動去聯系人,誰就是客戶端。
所以。
你要想客戶端接受消息,那在啟動客戶端的時候,在客戶端程序里開始一個提供埠的Socket就可以了。
ServerSocket serverSocket = new ServerSocket(5000);
while (true) {
final Socket socket = serverSocket.accept();
new Thread() {
Socket mySocket = socket;

@Override
public void run() {
try {
System.out.println(mySocket);
InputStream is = mySocket.getInputStream();
byte[] bytes = new byte[1024];
int n = is.read(bytes);
System.out.println(new String(bytes, 0, n));
OutputStream os = mySocket.getOutputStream();
os.write(("server reply at time " + new Date()
.toString()).getBytes());
mySocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}

⑶ android如何使用多線程及socket發送指令

1、後台服務是service,沒有界面 2、主線程要給後台service傳遞一個對象可以使用通知也就是notifation 方法:在主線程生成一個通知管理器對象notifationmanager,把socket對象以通知消息的形式發送給後台service,詳細的可以看看安卓巴士教程:http://www.apkbus.com/thread-463757-1-1.html

⑷ Android socket 開發,線程CPU佔用過高

socket 和流操作使用完都需要關閉的,不然會一直佔用資源

⑸ 如何用socket實現android手機與手機之間的通信

參考一般的JAVA的socket編程,如果通過手機網路,就不要使用UDP即可。

⑹ Android - Socket簡單使用

ServerSocket類提供如下構造器:

當ServerSocket使用完畢,應使用 close() 方法來關閉此ServerSocket。通常情況下,伺服器不應該只接收一個客戶端請求,而應該不斷接收來自客戶端的請求,所以程序可以通過循環,不斷調用ServerSocket的accept方法:

Socket 常用構造器

註:上面兩個構造器指定遠程主機時既可以使用InetAddress來指定,也可以直接使用String對象來指定遠程IP。本地主機只有一個IP地址時,使用第一個方法更簡單。

在與伺服器進行通訊的時候,無法判斷遠程的伺服器是否斷開連接。如果使用 OutputStream 發送數據則會影響正常的數據發送(無法區分)。所以就引入了一個心跳機制。

心跳機制實現,使用 Socket.sendUrgentData() 方法發送一個位元組流數據(緊急數據)。可以通過判斷服務端的 OOBINLINE 屬性是否打開,來確定是否斷開連接;

setSoTimeout()理解 :設置超時時間;例如:設置為2s,如果阻塞的時間>2s ,那麼就會報錯。

⑺ Android 基於UDP的Socket通信

1、連接DatagramSocket的服務端(ip和port):開啟非同步線程和socket
2、發送數據(DatagramPacket):非同步
3、接收數據(DatagramPacket):注意連接狀態,非同步讀取
4、關閉連接:關閉DatagramSocket和對應線程

1、異常:android.os.NetworkOnMainThreadException。 socket需要在線程中使用
2、前後端統一傳輸或者接收協議 [requestcode size d1 d2 d3 ... ],在解析時候用得到
3、實施監控socket的連接狀態,還是用心跳包發過去,然後返回數據,一段時間沒有的話則代表socket連接失敗。
4、注意receive接收數據後的有效長度(一個是預存的buffer,一個是有效結果buffer)
5、客戶端連上去後不知道為何一定要先發送一次,才能接收?
6、UDP不安全,有長度限制64K

2019 (* ̄(oo) ̄) 諸事順利!

熱點內容
官方源碼 發布:2025-02-08 14:09:25 瀏覽:437
python過濾器 發布:2025-02-08 14:05:06 瀏覽:617
火山幣演算法 發布:2025-02-08 14:04:49 瀏覽:669
jffs2解壓 發布:2025-02-08 13:55:15 瀏覽:388
如何向伺服器發送大數據包 發布:2025-02-08 13:55:12 瀏覽:662
伺服器pop地址是什麼 發布:2025-02-08 13:39:21 瀏覽:386
網站訪問計數器 發布:2025-02-08 13:32:07 瀏覽:6
釣魚的腥怎麼配置 發布:2025-02-08 13:22:57 瀏覽:756
php數組的引用 發布:2025-02-08 13:22:54 瀏覽:96
致遠a6伺服器地址在哪裡看 發布:2025-02-08 13:22:06 瀏覽:134