Javasocket客户端与服务端同步通信实例

2012-11-12

  工作中没涉及有关JAVA SOCKET编程的实际经历,但理论大概了解。想正明一下自已的对JAVA SOCKET理解写个通信TEST,通过TEST验证了基本与理论相近。下面是TEST SRC CODE 如果有牛人指点一二在下谢谢了,想写个类似QQ的局网通信程序,可没有太多时间如果您有JAVA SRC CODE 请与我联系。

  1.开发工具:eclips3.2

  2.工程基本结构:

  2.1 工程名:SocketTest

  2.2 包test1.service含类功能说明:

  2.2.1 KKMultiServerThread 服务端多线程处理类.

  2.2.2 KnockKnockProtocol 双方通信协义处理类。

  2.2.3 KnockKnockProtocolFace 双方通信协义处理接口。

  2.2.4 MyService 服务端监听处理主方法类。

  2.2.5 MyClient 客户端主方法类。

  2.3 包test1.error含类功能说明:

  2.3.1 ResponseError 服务端处理客户端响应异常类。

  3.工程基本结构具体说明及原码。

  2.1 工程名:SocketTest

  2.2 包test1.service含类功能说明:

  2.2.1 KKMultiServerThread 服务端多线程处理类.

  package test1.service;

  import java.io.BufferedReader;

  import java.io.IOException;

  import java.io.InputStreamReader;

  import java.io.PrintWriter;

  import java.net.InetAddress;

  import java.net.Socket;

  import test1.error.ResponseError;

  /**

  * @作者:刘家鸽

  * @功能:服务端处理客户端请求返回响应(多线程)

  */

  public class KKMultiServerThread extends Thread {

  private Socket clentSocket = null;

  private KnockKnockProtocol kkpf = null;

  private PrintWriter pw = null;

  private BufferedReader bir = null;

  public KKMultiServerThread() {

  super("KKMultiServerThread");

  }

  public KKMultiServerThread(Socket clentSocket) {

  super("KKMultiServerThread");

  this.clentSocket = clentSocket;

  }

  public KKMultiServerThread(Socket clentSocket, KnockKnockProtocolFace kkpf) {

  super("KKMultiServerThread");

  this.clentSocket = clentSocket;

  this.kkpf = (KnockKnockProtocol) kkpf;

  }

  public Socket getClentSocket() {

  return clentSocket;

  }

  public void setClentSocket(Socket clentSocket) {

  this.clentSocket = clentSocket;

  }

  public KnockKnockProtocol getKkpf() {

  return kkpf;

  }

  public void setKkpf(KnockKnockProtocol kkpf) {

  this.kkpf = kkpf;

  }

  // 运行线程

  public void run() {

  try {

  pw = new PrintWriter(clentSocket.getOutputStream());

  bir = new BufferedReader(new InputStreamReader(clentSocket

  .getInputStream()));

  String request = bir.readLine();

  System.out.println("客户端请求: " + request);

  InetAddress ia = clentSocket.getInetAddress();

  System.out.println("客户端ip:"+ia.getHostAddress());

  String response = kkpf.processInput(request);

  // 向客户端发送

  System.out.println("返回客户端响应:" + response);

  kkpf.sendResponse(pw, response);

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  } catch (ResponseError e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  } finally {

  try {

  System.out.println("关闭客户与服务端的连接");

  this.pw.close();

  this.bir.close();

  this.clentSocket.close();

  } catch (Exception e) {

  e.printStackTrace();

  }

  }

  }

  }

  编辑推荐:

  怎样用Jvm处理Java数组

  Java数组之初始化及实例代码

  使用JSON做AJAX的数据传输介质

分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com