android wifi熱點 socket通訊

來源:互聯網
上載者:User

標籤:

1.首先建立wifi熱點伺服器  wifi用戶端串連

2.開啟一個子線程迴圈監聽某個連接埠,進行資料流輸入輸出

 

/* 伺服器 接收資料 */
class Receiver extends Thread {
public String receiverContent;
public boolean flag = true;
public ServerSocket serverSocket = null;

public void run() {
try {
// 建立ServerSocket
serverSocket = new ServerSocket(3358);
while (flag) {
// 接受用戶端請求
Socket client = serverSocket.accept();
System.out.println("accept");
try {
// 接收用戶端訊息
BufferedReader in = new BufferedReader(
new InputStreamReader(client.getInputStream()));
receiverContent = in.readLine();
System.out.println("read:" + receiverContent);
handler.sendEmptyMessage(0);
// 向客戶端發送訊息
PrintWriter out = new PrintWriter(
new BufferedWriter(new OutputStreamWriter(
client.getOutputStream())), true);
out.println("server message");
// 關閉流
out.close();
in.close();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
// 關閉
client.close();
System.out.println("close");
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}

public void close() {
flag = false;
if (serverSocket != null) {
try {
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

/* 用戶端發送資料 */
class Sender extends Thread {
String serverIp;
String message;

Sender(String serverAddress, String message) {
super();
serverIp = serverAddress;
this.message = message;
}

public void run() {
Socket sock = null;
PrintWriter out;
try {
// 聲明sock,其中參數為服務端的IP地址與自訂連接埠
sock = new Socket(serverIp, 3358);
Log.w("WifiConnection", "I am try to writer" + sock);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
// 向伺服器端發送訊息
out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(sock.getOutputStream())), true);
out.println(message);

// 接收來自伺服器端的訊息
BufferedReader br = new BufferedReader(new InputStreamReader(
sock.getInputStream()));
String msg = br.readLine();
Message m = handler.obtainMessage();
m.what = 1;
m.obj = msg;
handler.sendMessage(m);
// 關閉流
out.close();
out.flush();
br.close();
// 關閉Socket
sock.close();
} catch (Exception e) {
LogUtil.e("發送錯誤:[Sender]run()" + e.getMessage());
}

}
}

android wifi熱點 socket通訊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.