android一對多通訊
android端對端通訊,一個伺服器,多個Client。本來是想把自己的電腦跑伺服器程式,關了防火牆也連線不上。發現校內網大部分採取DHCP,但我ifconfig發現idAdrress一直沒有變,怎麼回事?校內網大部分採取NAT技術,在專用網路內部使用專用IP地址,而僅在連線到因特網的路由器使用全球IP地址。所以不能夠當作伺服器來使用。
本地的java程式,本來打算只是測試一下能不能和client聯通,client為android studio編寫的簡單demo。
import java.net.*;
import java.io.*;
public class chat{
// private PrintWriter write;
// private BufferedReader read;
//靜態方法不能引用非靜態變數BufferedReade
//try模組以後再寫 好多錯誤
public static void main(String[] args) throws IOException{
ServerSocket s=new ServerSocket(2000);
System.out.println("伺服器等待連線....");
while(true){
Socket socket=s.accept();
//必須有一個伺服器,兩個客戶端的IP是變動的,沒有中介無法連線
System.out.println("伺服器已連線");
BufferedReader read;
PrintWriter write;
read = new BufferedReader(new InputStreamReader(socket.getInputStream()));
write = new PrintWriter(new BufferedWriter(new OutputStreamWriter( socket.getOutputStream())),true);
String line=read.readLine();
System.out .println(line);
write.println(line);
read.close();
write.close();
socket.close();}
//無法訪問的語句?:write.close(); 記憶體不能關閉 迴圈好多次?
}
}
客戶端為:`import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class MainActivity extends AppCompatActivity {
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=(TextView)findViewById(R.id.show);
try {
Socket socket=new Socket("172.28.59.107",2000);
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line=bufferedReader.readLine();
textView.setText(line);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
`
相關推薦
android一對多通訊
android端對端通訊,一個伺服器,多個Client。本來是想把自己的電腦跑伺服器程式,關了防火牆也連線不上。發現校內網大部分採取DHCP,但我ifconfig發現idAdrress一直沒有變,怎麼回事?校內網大部分採取NAT技術,在專用網路內部使用專用IP
socket程式設計(2)—— 一對多通訊
1 一對多模型,TCP的程式設計步驟 服務端: 1、socket()獲得一個sockfd。注意第二個引數必須SOCK_STREAM. 2、準備通訊地址(必須伺服器的) 3、bind()繫結。(開放了埠,允許客戶端連線) 4、監聽客戶端 listen()函式 5、等待客戶端的
一對多通訊之socket程式設計(程序)
1 一對多模型,TCP的程式設計步驟 服務端: 1、socket()獲得一個sockfd。注意第二個引數必須SOCK_STREAM. 2、準備通訊地址(必須伺服器的) 3、bind()繫結。(開放了埠,允許客戶端連線) 4、監聽客戶端 list
NRF24L01一對多通訊方法
搞通了2個NRF24L01的互相通訊,一對多實際上就非常容易了。你要記住,一對多通訊,實際上同一時刻也是一對一通訊。一次通訊只需幾個毫秒,如果一個和一個通訊完以後,再和另外一個通訊,然後再和另外一個通訊……這中間如果沒有延時程式的話,對於人的反應來說,就是同時進行的。這個
Spring系列文章 | SockJS長連線實現一對一和一對多通訊
最近專案上要做掃碼登入,所以研究了一下Spring WebSocket。網上找了很多資料 springmvc(18)使用WebSocket 和 STOMP 實現訊息功能、spring websocket + stomp 實現廣播通訊和一對一通訊,要麼就是不是自己想
Android中多執行緒通訊:Handler的理解
Android中的Handler Android中Handler在我理解主要是為了解決執行緒間通訊。 使用Android的Handler機制主要要了解幾個類: Looper: 一個執行緒對應一個或者0個Looper,主執行緒在ActivityThread的時候會預設建立一個L
C# 簡單通訊(支援一對多)
也就伺服器不一樣的寫法,弄了一個類似於Map的容器,其實是字典陣列的感覺,客戶端和原來一樣 服務端: using System; using System.Collections.Generic; using System.ComponentModel; using
STM32驅動NRF24L01一對多的通訊---可變資料包寬度
既然是一對多可變payload寬度的通訊,肯定是包含兩個方面: (1)能進行一對多通訊(同個頻道下一般最多是一對六) (2)傳送的資料包寬度是可變的 配置NRF24L01進行一對多通訊,前提是一對一通訊機制必須要清楚。 我個人的理解是這樣的 PTX
以面向物件的思維,搭建Android與多ble藍芽裝置併發通訊小框架
此框架支援多種不同型別的ble裝置,同時連線、收發資料,互不干擾。比如APP同時連兩個LED藍芽燈、兩個手環、一個藍芽加熱器,當然連線單個ble裝置,或者只連線一種ble裝置同樣適用本框架。 前言 小白請繞道百度,本文適合有一定Android、ble藍芽、面向物件基礎的同學進階探討,只講關鍵技術點,細
java-mybaits-00502-案例-映射分析-一對一、一對多、多對多
per username nfa view 2.3 puts opened org double 1、一對一查詢【類屬性即可,association 】 案例:查詢所有訂單信息,關聯查詢下單用戶信息。 註意:因為一個訂單信息只會是一個人下的訂單,所以從查詢
Android學習 多讀官網,故意健康---手勢
same str ces 12px lis assume extend current -- 官網地址 ttp://developer.android.com/training/gestures/detector.html: 一、能夠直接覆蓋Activity的on
android入門 — 多線程(一)
xtend 分享 調用 管理 ava 導致 ui線程 rec thread android中的一些耗時操作,例如網絡請求,如果不能及時響應,就會導致主線程被阻塞,出現ANR,非常影響用戶體驗,所以一些耗時的操作,我們會想辦法放在子線程中去完成。 android的U
Android之——多線程下載演示樣例
技術分享 style lis pad range 轉載 pre fontsize response 轉載請註明出處:http://blog.csdn.net/l1028386804/article/details/46883927 一、概述 說到A
一對多關聯
return ria 增加 code auth save posit 關聯 spa 一對多關聯 關聯定義 一對多關聯的情況也比較常見,使用hasMany方法定義,參數包括: hasMany(‘關聯模型名‘,‘外鍵名‘,‘主鍵名‘,[‘模型別名定義‘]); 例如一篇文章可以
Hibernate一對多關系操作
int hset ets image 修改 方法 商品 也會 對象 1、創建兩個實體類。 一個實體類是商品類,另一個實體類是商品的分類類。 在一對多關系的兩個實體中,在編寫實體類時必須要遵循以下規則: (1)在一的那一方的實體中,必須要有一個私有
第二百八十節,MySQL數據庫-外鍵鏈表之一對多
一個 -1 blog logs bsp com span 連接 col MySQL數據庫-外鍵鏈表之一對多 外鍵鏈表之一對多 外鍵鏈表:就是a表通過外鍵連接b表的主鍵,建立鏈表關系 一對多:就是b表的某一個字段值對應a表外鍵裏的多個值,前提是a表要與b表鏈表 第二百
mybatis3.2.7應用_高級映射(一對一、一對多、多對多)
mybatis3 單個 所有 由於 單表 myba 用戶 記錄 text 1. 一對一查詢 需求:查詢訂單信息,關聯查詢創建訂單的用戶信息 1.1 使用resultType實現 1.1.1 sql語句 確定查詢的主表:訂單表 確定查詢的關聯表:用戶表
hibernate 一對多 關系映射
hibernate 一對多映射配置在關系中,或多或少的表之間有復雜的關聯關系這裏測試 一對多 關聯關系的配置開發步驟就不多說了。直接看一個示例。users 用戶 和 shop商品訂單表分析:一個用戶可以有多個商品訂單,一個訂單只屬於一個用戶。這樣就構成了一對多的關聯關系。這裏用的是oracle 數據庫use
一口一口吃掉Hibernate(五)——一對多單向關聯映射
term student hash pow gravity 允許 pri pac 處理 版權聲明:本文為博主原創文章,未經博主允許不得轉載。如需轉載請聲明:【轉自 http://blog.csdn.net/xiaoxian8023 】 在上一篇博客《一口一
hibernate之初學一對多和多對一配置及使用
外鍵 ble dtd nat util gin doc 一對多 dialect 按查詢及存取速率來說的一對多用的相對多對一少一些,這裏只寫主要配置文件的代碼 首先是hibernate的配置文件 <!DOCTYPE hibernate-configuration PU