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

  }

 }

}

服务端与客户端源码

 

你可能感兴趣的:(android)