android 里使用Socket進行發送消息案例


猜拳 源碼
http://www.eoeandroid.com/thread-114907-1-1.html

自己實現的Android曲線圖
http://www.eoeandroid.com/thread-207218-1-1.html

android游戲物理引擎源碼
http://www.eoeandroid.com/thread-207445-1-1.html

socketServer類

package com.socket.server;
 
import java.io.*;
import java.net.*;
 
import android.content.Context;
import android.content.Intent;
 
public class SocketServer {
 
ServerSocket sever;
Context context;
 
public SocketServer(Context context, int port) {
try {
//實例化ServerSocket傳入端口號
sever = new ServerSocket(port);
this.context = context;
} catch (IOException e) {
e.printStackTrace();
}
}
 
public void ControlActionAnswerMsg(String str) {
final Intent intent = new Intent();
intent.setAction("SOCKET_ACTION");
intent.putExtra("message", str);
context.sendBroadcast(intent);
}
 
public void beginListen() {
//將socket監聽放入線程中,防止影響主線程操作
new Thread() {
public void run() {
//因為是不斷監聽的過程,所以采用死循環
while (true) {
try {
//這里是做監聽操作
final Socket socket = sever.accept();
 
BufferedReader in;
try {
//監聽到消息后這里讀取流信息
in = new BufferedReader(new InputStreamReader(
socket.getInputStream(), "UTF-8"));
//將流信息放入PrintWriter中,然后讀出來即可
PrintWriter out = new PrintWriter(
socket.getOutputStream());
while (!socket.isClosed()) {
String str;
//讀出字符串
str = in.readLine();
out.println("Hello!world!! " + str);
out.flush();
if (str == null || str.equals("end"))
break;
System.out.println(str);
ControlActionAnswerMsg(str);
}
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
 
}
}.start();
}
}

ClientSocket類

package com.socket.pc;
import java.io.*;
import java.net.*;
public class ClientSocket {
 static Socket client;
 public ClientSocket(String site, int port) {
  try {
   //實例化socket傳入ip和端口號,兩邊端口號要統一
   client = new Socket(site, port);
   System.out.println("Client is created! site:" + site + " port:"
     + port);
  } catch (UnknownHostException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
 public String sendMsg(String msg) {
  try {
   // BufferedReader in = new BufferedReader(new InputStreamReader(
   // client.getInputStream()));
   //將字符串轉成輸出流然后發送出去
   PrintWriter out = new PrintWriter(client.getOutputStream());
   out.println(msg);
   out.flush();
   // return in.readLine();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return "";
 }
 public void closeSocket() {
  try {
   client.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

服務端與客戶端源碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM