我有問題,我還沒有找到答案。我有2個設備與每個無線,這是發送特殊數據。我想在平板電腦上同時顯示這些數據。有一臺帶網絡的路由器,平板電腦和該設備都連接到該網絡。Android平板電腦,路由器和2個設備之間的單向連接
如何解決這個問題?我應該使用serversocket嗎?我不知道我是否足夠清楚地解釋它,如果沒有,請詢問。感謝您的迴應。
我有問題,我還沒有找到答案。我有2個設備與每個無線,這是發送特殊數據。我想在平板電腦上同時顯示這些數據。有一臺帶網絡的路由器,平板電腦和該設備都連接到該網絡。Android平板電腦,路由器和2個設備之間的單向連接
如何解決這個問題?我應該使用serversocket嗎?我不知道我是否足夠清楚地解釋它,如果沒有,請詢問。感謝您的迴應。
我有同樣的應用程序運行在我工作的公司上。 「設備」是一個基於微控制器的設備,它實現了lwIP(輕量級IP協議),它正在監聽端口83,並且每隔500ms平板電腦就會讀取新的新數據並將其繪製在圖形中。奇蹟般有效。
(的情況下,你會被繪製圖表,我用AChartEngine,你可以在我的個人資料查看一個問題就可以了/回答一些有用的信息)
下面的代碼是一個簡化版本我正在做。完整版本包括幾個try{ } catch() { }
萬一它捕捉到一個異常,它嘗試關閉套接字並返回null;
public static String SendMessage(String message, String ip, int port) {
// Connect to host ==================================
Socket socket = new Socket();
socket.setSoTimeout(TIMEOUT);
InetSocketAddress addr = new InetSocketAddress(ip, port);
socket.connect(addr, TIMEOUT);
// Send Message ======================================
byte[] outputBuffer = message.getBytes();
socket.getOutputStream().write(outputBuffer);
// Zero the input buffer =============================
for (int i = 0; i < inputBuffer.length; i++) {
inputBuffer[i] = 0;
}
// Read the response ==================================
int count = 0;
do {
count = socket.getInputStream().read(inputBuffer);
} while (count != -1);
// Close connection ====================================
close(socket);
// Return message ======================================
return new String(inputBuffer).trim();
}
希望它有幫助, 快樂編碼。
1.套接字將是一個好主意。
發送:
Socket s = new Socket();
s.connect(new InetSocketAddress("IP_ADDR",PORT_NO);
OutputStream o = s.getOutputStream();
PrintWriter pw = new PrintWriter(o);
pw.write(msg); // msg will be the data needed to send
用於接收:
Socket s = new Socket();
s.connect(new InetSocketAddress("IP_ADDR",PORT_NO);
InputStream i = s.getInputStream();
InputStreamReader isr = new InputStreamReader(i);
BufferedReader br = new BufferedReader(isr);
String str = new String();
while((str=br.readLine())!=null){
System.out.println(str); // do whatever u want to do with str, the data read
}