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

Socket网络编程,如何处理客户端发送的数据类别

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

Socket网络编程,如何处理客户端发送的数据类别

在自学的路上越陷越深,相信很多新手和我一样,对于网络编程总是很懵,网络上资源很多,但是具体解决问题的很少,基本上都是理论知识,这对一个新手来说是不可接受的,而我也是现学现用,不能分析的太深,讲到这,首先需要的就是一个封装类了,因为我们发送的消息可能包含是文件或者只有消息,如果没有封装类来解析的话,问题就会很复杂。
前面的文章已经讲过了封装类,所以这里就直接跳过,不懂的可以去我的上一张博客查看了解一下,直接上代码

客户端:

public class ClientSocket {
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("127.0.0.1",9999);
            OutputStream os = socket.getOutputStream();
//            包装流
            ObjectOutputStream oos = new ObjectOutputStream(os);
//            标志位
            oos.writeUTF("info");
//            封装类
            Student stu = new Student();
            stu.setUsername("张三");
            stu.setSex("男");
            stu.setAddress("贵州");
            oos.writeObject(stu);
            if (os != null) {
                os.close();
            }
            if (oos != null) {
                oos.close();
            }
            if (socket != null) {
                socket.close();
            }
            System.out.println("发送成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

服务端:

public class ServerSocketTest {
    public static void main(String[] args) {
        try {
            
            ServerSocket serverSocket = new ServerSocket(9999);
//            监听9999端口
            Socket socket = serverSocket.accept();
            InputStream is = socket.getInputStream();
            ObjectInputStream ois = new ObjectInputStream(is);
//            标志位,用来判断客户端发送的数据处理方式
            String state = ois.readUTF();
//            如果你不太了解标志位,可以设置成web形式的映射路径,处理对应的内容即可
            if ("info".equals(state)) {
                System.out.println("收到的信息为:" + state);
                Student stu = (Student) ois.readObject();
                System.out.println("内容是:");
                System.out.println("姓名:" + stu.getUsername());
                System.out.println("性别:" + stu.getSex());
                System.out.println("地址:" + stu.getAddress());
            }
            if ("file".equals(state)){
                
            }
            if (is != null) {
                is.close();
            }
            if (ois != null){
                ois.close();
            }
            if (socket != null){
                socket.close();
            }
            if (serverSocket != null){
                serverSocket.close();
            }
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

结果:

新手入坑,欢迎发表建议

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

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

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