Socket通信实现步骤
Posted ch94
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Socket通信实现步骤相关的知识,希望对你有一定的参考价值。
public class Server { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(8888); System.out.println("服务器启动中...."); //accept()是在一个套接口接受的一个连接。accept()是c语言中网络编程的重要的函数, //本函数从s的等待连接队列中抽取第一个连接,创建一个与s同类的新的套接口并返回句柄。 Socket socket = serverSocket.accept();//获取Socket InputStream is = socket.getInputStream();//获取输入流 InputStreamReader isr = new InputStreamReader(is);//InputStreamReader类是从字节流到字符流的桥接器 BufferedReader br = new BufferedReader(isr);//缓冲流 System.out.println("客户端数据" + br.readLine()); String info = null; while((info = br.readLine()) != null){ System.out.println("客户端传递的信息" + info); } socket.shutdownInput();//shutdownInput和shutdownOutput只关闭相应的输入、输出流,不会同时关闭网络连接的功能。 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write("欢迎您!!"); pw.flush();//flush()是清空,而不是刷新 将缓冲区的内容输出 pw.close(); os.close(); br.close(); isr.close(); is.close(); socket.close(); serverSocket.close(); } catch (IOException e) { System.out.println(e.getMessage()); e.printStackTrace(); } } }
public class Client { public static void main(String[] args) { try { Socket socket = new Socket("localhost", 8888); System.out.println("客户端启动中...."); OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write("admin"); pw.flush(); socket.shutdownOutput(); InputStream is = socket.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String info = null; while((info = br.readLine()) != null){ System.out.println("服务端返回的信息" + info); } os.close(); pw.close(); is.close(); br.close(); socket.close(); } catch (Exception e) { e.printStackTrace(); } } }
以上是关于Socket通信实现步骤的主要内容,如果未能解决你的问题,请参考以下文章