1 客户端
package com.test; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Writer; import java.net.Socket; public class Client { public static void main(String args[]) throws Exception { //为了简单起见,所有的异常都直接往外抛 String host = "127.0.0.1"; //要连接的服务端IP地址 int port = 8888; //要连接的服务端对应的监听端口 //与服务端建立连接 Socket client = new Socket(host, port); //建立连接后就可以往服务端写数据了 Writer writer = new OutputStreamWriter(client.getOutputStream()); writer.write("Hello Server."); writer.write("eof\n"); writer.flush(); //写完以后进行读操作 BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream())); StringBuffer sb = new StringBuffer(); String temp; int index; while ((temp=br.readLine()) != null) { if ((index = temp.indexOf("eof")) != -1) { sb.append(temp.substring(0, index)); break; } sb.append(temp); } System.out.println("from server: " + sb); writer.close(); br.close(); client.close(); } }
2服务端
package com.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Writer; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String args[]) throws IOException { //为了简单起见,所有的异常信息都往外抛 int port = 8899; //定义一个ServerSocket监听在端口8888上 ServerSocket server = new ServerSocket(port); while (true) { //server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的 Socket socket = server.accept(); //每接收到一个Socket就建立一个新的线程来处理它 new Thread(new Task(socket)).start(); } } /** * 用来处理Socket请求的 */ static class Task implements Runnable { private Socket socket; public Task(Socket socket) { this.socket = socket; } public void run() { try { handleSocket(); } catch (Exception e) { e.printStackTrace(); } } /** * 跟客户端Socket进行通信 * @throws Exception */ private void handleSocket() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); StringBuilder sb = new StringBuilder(); String temp; int index; while ((temp=br.readLine()) != null) { System.out.println(temp); if ((index = temp.indexOf("eof")) != -1) {//遇到eof时就结束接收 sb.append(temp.substring(0, index)); break; } sb.append(temp); } System.out.println("from client: " + sb); //读完后写一句 Writer writer = new OutputStreamWriter(socket.getOutputStream()); writer.write("Hello Client."); writer.write("eof\n"); writer.flush(); writer.close(); br.close(); socket.close(); } } }
相关推荐
java异步长连接的demo 需要的童鞋可以参考下
eclipse工程 导入eclipse myeclipse就可以完美运行 有测试类 每一行都有注释 资源分定为5分,如果大家还觉得我积分定多了,那么大家可以去下载那些个单个类10积分的。 请大家也体谅我的辛苦劳作
Java Socket发送和接收的例子 能正确运行 代码有注释
刚刚学习socket的时候编写的程序,可以实现客户端连续向服务器发送三个数据,服务器端连续接受三个数据并返回给客户端处理结果
socket异步通讯实例,说明socket如何进行工作的
基于java nio socket 的文件传输例程
重新写的Java.nio的socket异步通讯,包含客户端及服务端完整版, 注:解析信息CLASS及进制转换CLASS需要自己去写,项目直接导入,需要自己写一些解析及转换类,这样你才能读懂SOCKET的异步,否则光拿代码没用 ...
java异步通信例子 java NIO 异步socket
Java异步socket示例代码
参考了许多大侠的代码,才写出来东东,没对数据做校验,希望给正在研究这方的东东的人一点参考.里面包含文件以及DataTable传输等
_java中异步socket类的实现和源代码.doc
java写的异步socket服务端源代码,包括一些指令操作! 开发异步服务端的时候可以借鉴一下。 只有一个java文件,就完成异步服务端的功能。 不要错过哦,10分的资源分贵是贵点,但是真的值。
DougLee可扩展的网络服务事件驱动Reactor模式基础版多线程版其他变体java.io包中分阻塞IOAPI一览Web服务器,分布式对象系统等等它们的共同特点Read请求解码请求报文业务处理编码响应报文发送响应实际应用中每一个...
java异步socket调用.pdf
在Merlin发布之前,异步输入输出流的应用还只是C,C++程序员的特殊武器 在Merlin中引入异步输入输出机制之后,Java程序员也可以利用它完成很多简洁却是高质量的代码了.本文将介绍怎样使用异步输入输出流来编写Socket...
socket 异步通信服务器server 源码 ,包括C#版,Java版,VC版,我的硕士毕业论文就是基于这个做的,当时做的一个无线传感器网络的项目,用这个做数据中心,接收通过DTU从无线传感器发送回的数据,相当的强悍,在...
java异步socket调用[文].pdf
自己编写的JavaSocket 开发框架基于异步模式
HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。...