栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 网络编程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 网络编程

网络编程 服务器和客户端实现单次通信

服务器的 接受和发送

// 搭建服务器
        ServerSocket server = new ServerSocket(55555);
        System.out.println("服务器启动完成");

        // 等待客户端连接服务器
        Socket socket = server.accept();
        System.out.println("一个客户端连接了");
        
		// --------- 客户端连接服务器,服务器给客户端发送消息
        //获取一个输出流
        OutputStream os = socket.getOutputStream();
        /// 把输出流转成打印流,得到一个打印流
        PrintStream ps = new PrintStream(os);
        ps.println("欢迎你连接服务器");


        // ---------- 服务器接受到客户端的回复
        InputStream inputStream = socket.getInputStream();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String text = bufferedReader.readLine();
        System.out.println("服务器接收到客户端的回复:"+text);

客户端的访问和接收

		// 连接服务器  服务器ip , 端口
        Socket socket = new Socket("localhost",55555);

		// ------客户端接收服务器的信息
        // 获取一个输入流 is,通过BufferedReader 一行行读取
        InputStream is = socket.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String text = br.readLine();
        System.out.println("客户端接到消息:"+text);

		// -------客户端向服务器发送信息
        // 访问服务器的 输出流
        OutputStream os = socket.getOutputStream();
        PrintStream ps = new PrintStream(os);
        ps.println("服务器你好");
    }

进阶版的,可以实现多个客户端访问的例子

服务器可以接受多个 客户端的访问。增加了线程,避免因某个客户端的卡顿影响其他客户端的访问。

package 服务器;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;


public class Server {
    public static void main(String[] args) throws IOException {
        // 搭建服务器
        ServerSocket server = new ServerSocket(55555);
        System.out.println("服务器启动完成");

        // 等待客户端连接服务器
        
        while(true) {
            Socket socket = server.accept();
            // 添加线程,实现 避免访问等待
            new Thread(){
                @Override
                public void run() {
                    try {
                        OutputStream outputStream = socket.getOutputStream();
                        PrintStream printStream = new PrintStream(outputStream);
                        printStream.println("欢迎你连接服务器");

                        // 服务器获得 客户端的消息
                        InputStream inputStream = socket.getInputStream();
                        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                        String text = bufferedReader.readLine();
                        System.out.println("服务器收到客户端的回复"+text);
                    }    catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }.start();
            System.out.println("一个客户端连接了");
        }

    }
}

客户端的发送和接受

package 客户端;

import java.io.*;
import java.net.Socket;


public class clent {
    public static void main(String[] args) throws IOException {
        // 连接服务器  服务器ip , 端口
        Socket socket = new Socket("localhost",55555);

        // 获取一个输入流 is,通过BufferedReader 一行行读取
        InputStream is = socket.getInputStream();
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        String text = br.readLine();
        System.out.println("客户端接到消息:"+text);

        // 访问服务器的 输出流
        OutputStream os = socket.getOutputStream();
        PrintStream ps = new PrintStream(os);
        ps.println("服务器你好");
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/591649.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号