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通信实现步骤的主要内容,如果未能解决你的问题,请参考以下文章

Java系列讲座二:Socket网络通信实现聊天软件项目讲解(UDP)

Socket的基本使用步骤

java中socket网络通信,实现客户端上传文件案例

通过 Socket 实现 TCP 编程

:基于socket.io实现即时通信

c# socket 通信时如何限速?