1. 程式人生 > >android一對多通訊

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();
    }


}

}
`
IP為172.28.59.107

相關推薦

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

以面向物件的思維,搭建Androidble藍芽裝置併發通訊小框架

  此框架支援多種不同型別的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