客户端给服务端发送数据,服务端收到数据后,给客户端反馈数据
客户端:
获取Socket@H_502_11@对象,new@H_502_11@出来,构造参数:String@H_502_11@的ip@H_502_11@地址,int@H_502_11@的端口号
调用Socket@H_502_11@对象的getoutputStream()@H_502_11@方法,获取到OutputStream@H_502_11@对象
调用OutputStream@H_502_11@对象的write()@H_502_11@方法,输出流输出数据,参数:byte[]@H_502_11@字节数组
调用Socket@H_502_11@对象的getInputStream()@H_502_11@方法,获取到InputStream@H_502_11@对象
调用InputStream@H_502_11@对象的read()@H_502_11@方法,读取数据得到读取的长度,参数:byte[]@H_502_11@字节数组
获取String@H_502_11@对象,new@H_502_11@出来,构造参数:byte[]@H_502_11@字节数组,0@H_502_11@开始,len@H_502_11@长度
调用Socket@H_502_11@对象的close()@H_502_11@方法,关闭socket
客户端的输入流读取read()@H_502_11@方法,是阻塞式方法,会在这里等待服务端返回数据
服务端:
获取ServerSocket@H_502_11@对象,new@H_502_11@出来,构造参数:int@H_502_11@的端口号
调用ServerSocket@H_502_11@对象的accept()@H_502_11@方法,得到Socket@H_502_11@对象
调用Socket@H_502_11@对象的getInputStream()@H_502_11@方法,得到输入流对象,解析输入流
调用Socket@H_502_11@对象的getoutputStream()@H_502_11@方法,得到输出流对象,输出数据
调用Socket@H_502_11@对象的close()@H_502_11@方法,关闭socket
调用ServerSocket@H_502_11@对象的close()@H_502_11@方法,关闭ServerSocket
服务端的accept()@H_502_11@方法,是阻塞式方法,会在这里等待客户端的连接
Server.java
import java.io.InputStream; java.io.OutputStream; java.net.InetAddress; java.net.ServerSocket; java.net.socket; /** * 服务端 * * @author taoshihan * */ public class Server { static void main(String[] args) throws Exception { ServerSocket serverSocket = new ServerSocket(10004); // while (true) { Socket socket = serverSocket.accept(); InputStream inputStream = socket.getInputStream(); byte[] buf = new byte[1024]; int len = inputStream.read(buf); InetAddress ip = socket.getInetAddress(); System.out.println("来自" + ip.getHostAddress() + "说:" + new String(buf,0,len)); Thread.sleep(10000);睡眠10秒钟,客户端会一直等待 OutputStream out=socket.getoutputStream(); out.write("我是服务端,已经收到信息".getBytes()); socket.close(); serverSocket.close(); } } }
java.io.IOException; * 客户端 * taoshihan * Client { Exception,IOException { Socket socket=new Socket(InetAddress.getLocalHost(),10004); OutputStream outputStream=socket.getoutputStream(); outputStream.write("我是客户端,服务端你好".getBytes()); InputStream in=socket.getInputStream(); byte[] b=]; int len=in.read(b);这里会阻塞,等待服务端的返回 System.out.println(new String(b,len)); socket.close(); } }
Client.java
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。