Java socket如何实现多次通讯,满分求高手解答一下!

谁用了我的宇宙大魔王 2015-10-25 10:20:24
我现在的代码只能实现一次通讯,如何在一次socket连接过程中实现多次通讯。具体的说就是我现在每次连接socket之后只能实现给服务器发送一个值,然后接收返回值,而且发送的值定义在方法内部。现在我需要多次发送不同的数据并接收。我该用什么方式把参数传递进去可以实现多次传递并在我需要的时候关闭socket连接。请问怎么实现,是用线程还是什么,还请知道的人不吝指教,给个思路,谢谢。
public class Control2 {
public String up() {
try {
Socket socket = new Socket("192.168.19.167", 4001);// 向本机的4700端口发出客户请求("192.168.19.167",4001)
OutputStream socketWriter = socket.getOutputStream();//定义输出流
InputStream socketReader = socket.getInputStream();//定义输入流
byte[] b = new byte[1024];
b[0]=(byte) 0x81;
b[1]=(byte) 0x01;
b[2]=(byte) 0x06;
b[3]=(byte) 0x01;
b[4]=(byte) 0x05;
b[5]=(byte) 0x05;
b[6]=(byte) 0x03;
b[7]=(byte) 0x01;
b[8]=(byte) 0xFF;
socketWriter.write(b);
socketWriter.flush();
System.out.println("我是服务器,客户端说:" + b);// 在系统标准输出上打印读入的字符串
int count = 0;//存放输入流中字节长度
while (count == 0) {//设置等待,长度为0表示未读取到,继续循环读取
count = socketReader.available();//把输入流中字节长度赋值给count
System.out.println("222");
System.out.println("333");
}
byte[] c = new byte[count];
socketReader.read(c);//把输入流的中的字节数组放入c
System.out.println(c);
String str = new String(c);
System.out.println(str);
socketWriter.close();//关闭Socket输出流
socketReader.close(); // 关闭Socket输入流
socket.close(); // 关闭Socket
return null;
} catch (Exception e) {
System.out.println("Error" + e);
return null;
}
}
}
...全文
607 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
感谢回答,结贴了
qingyuan18 2015-10-26
  • 打赏
  • 举报
回复
用JAVA新的NIO,用selector异步连socket server
寄莫相伴 2015-10-26
  • 打赏
  • 举报
回复
http://blog.csdn.net/u012963788/article/details/49275627 看我这个,里面有代码下载
随着云计算快速发展和SaaS模式普及,多租户架构共享基础设施为多个租户提供服务,但数据存储在同一数据库,隔离机制不完善将导致跨租户数据泄露。据云安全联盟统计,数据隔离失效是SaaS应用面临的首要安全风险。针对现有多租户系统在隔离粒度、控制灵活性和策略可定制性方面的不足,本文提出细粒度数据隔离与精细化访问控制方案,基于Java+Spring Boot+MyBatis-Plus+MySQL实现,含租户管理、数据隔离、权限配置、访问控制、安全审计五个核心模块。核心创新有三方面:其一,TENANT-ROW-ISOLATION行级数据强制隔离机制,设计ORM拦截器层与数据库视图层双重隔离架构,ORM层自动注入租户条件防止遗漏,数据库层通过租户视图和行级安全策略实现强制隔离,并支持AES-256加密存储和动态数据脱敏;其二,RBAC-ABAC-HYBRID混合访问控制模型,以RBAC实现粗粒度权限管理,以ABAC实现基于用户属性、资源属性、环境属性的细粒度动态授权,支持权限继承、职责分离和临时授权;其三,DYNAMIC-POLICY动态安全策略引擎,支持租户自定义访问控制、数据脱敏和审批规则,实时生效,支持优先级、冲突检测、版本管理和决策缓存。实验表明,数据隔离有效性达100%,越权访问拦截率99.2%,认证授权平均延迟2.3ms,隔离查询开销小于5%,策略评估延迟1.8ms,系统在隔离粒度、控制灵活性和策略可定制性方面较传统方案优势显著,为SaaS多租户应用提供了有效的数据安全防护方案。 【课程报告内容】 摘要 第1章 绪论 第2章 相关技术与理论 第3章 系统需分析 第4章 系统总体设计 第5章 系统详细设计与实现 第6章 系统测试与分析 第7章 总结与展望 参考文献 附件-实现指南

67,535

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧