java socket同步通信_Java socket客户端与服务端同步通信实例

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 2.2.2 KnockKnockProtocol 双方通信协义处理类。 package test1.service; import java.io.PrintWriter; import test1.error.ResponseError; /** * @作者:刘家鸽 * @功能:协义处理类 */ public class

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

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

package test1.service;

import java.io.PrintWriter;

import test1.error.ResponseError;

/**

* @作者:刘家鸽

* @功能:协义处理类

*/

public class KnockKnockProtocol implements KnockKnockProtocolFace {

private String response = null;

//获得客户端协义

public String processInput(String request) throws ResponseError {

if (request.equalsIgnoreCase(KnockKnockProtocolFace.QUERY_USER)) {

response = this.processQUERY_USER(request);

} else {

response = KnockKnockProtocolFace.NOT_EXIST_REQUEST_PROTOCOL_ERROR;

}

return this.response;

}

//处理QUERY_USER协义

public String processQUERY_USER(String request) throws ResponseError {

this.response = this.QUERY_USER_SUCCEED_INFO;

return this.response;

}

// 发送服务端请求

public void sendResponse(PrintWriter pw, String response) throws ResponseError {

pw.println(response);

pw.flush();

}

}

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

package test1.service;

import java.io.PrintWriter;

import test1.error.ResponseError;

/**

* @作者:刘家鸽

* @功能:协义处理类接口

*/

public interface KnockKnockProtocolFace {             //此属性没有从数据库或属性文件中读取。

public static final String EXIT = "EXIT";

public static final String QUERY_USER = "QUERY_USER";

public static final String ERROR = "ERROR";

public static final String QUERY_USER_ERROR_INFO = "QUERY_USER_ERROR";

public static final String QUERY_USER_SUCCEED_INFO = "QUERY_USER_SUCCEED";

public static final String NOT_EXIST_REQUEST_PROTOCOL_ERROR = "NOT_EXIST_REQUEST_PROTOCOL_ERROR";

public String processInput(String request) throws ResponseError;

public String processQUERY_USER(String request) throws ResponseError;

public void sendResponse(PrintWriter pw,String response) throws ResponseError;

}

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

package test1.service;

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;

/**

* @作者:刘家鸽

* @功能:服务监听

*/

public class MyService {

private ServerSocket ss = null;

private KKMultiServerThread kkst = null;

private int PORT = 65534;

private long MILLIS = 0l;

private Socket s = null;

// 服务

public static void main(String[] args) {

new MyService().startMainService();

}

// 开启服务

private void startMainService() {

try {

// 设置服务端提供服端口

ss = new ServerSocket(this.PORT);

KnockKnockProtocol kkpl = new KnockKnockProtocol();

kkst = new KKMultiServerThread();

// /s = ss.accept();

int count = 0;

// 读取客户端信息

while (true) {

System.out.println("等待读取客户端信息");

//s = ss.accept();

KKMultiServerThread st = new KKMultiServerThread(ss.accept(),

new KnockKnockProtocol());

st.start();

st.sleep(0);

}

// 关闭客户端连接

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

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

if (s != null)

s.close();

if (ss != null)

ss.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

[1] [2] [3]

test.jsp?url=http%3A%2F%2Fwww.chinaitlab.com%2Fcms%2Fimages%2Flogo14.gif&refer=http%3A%2F%2Fjava.chinaitlab.com%2Fnet%2F843710_2.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值