zoukankan      html  css  js  c++  java
  • java socket

    Person类:

    package com.zhyea.olproxy.socket;
    
    import java.io.Serializable;
    
    public class Person implements Serializable {
        
        private static final long serialVersionUID = 3199890860738953693L;
        /**
         * 姓名
         */
        private String name;
        /**
         * 年龄
         */
        private int age;
        
        public Person(String name, int age){
            this.name = name;
            this.age = age;
        }
        
        
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        
        
    }

    服务端:

    package com.zhyea.olproxy.socket;
    
    import java.io.IOException;
    import java.io.ObjectOutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.ArrayList;
    
    public class Server {
    
        public static ArrayList<Socket> socketList = new ArrayList<Socket>();
        
        public static void main(String[] args){
            try {
                //创建一个ServerSocket,用以监听客户端Socket的请求
                ServerSocket serverSocket = new ServerSocket(49000);
                while(true){
                    //接收到客户端的请求后,服务器端也产生一个socket
                    Socket socket = serverSocket.accept();
                    ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
                    Person person = new Person("Robin", 16);
                    oos.writeObject(person);
                    //关闭输出流,关闭socket
                    oos.close();
                    socket.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
    }

    客户端:

    package com.zhyea.olproxy.socket;
    
    import java.io.ObjectInputStream;
    import java.net.Socket;
    
    public class Client {
    
        public static void main(String[] args){
            try {
                Socket socket = new Socket("127.0.0.1", 49000);
                ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
                Person robin = (Person)ois.readObject();
                
                if(null!=robin)System.out.println(robin.getName() + "##" + robin.getAge());
                
                ois.close();
                socket.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    有两点需要注意

    • 对象类需要实现Serializable接口;
    • 通信流使用ObjectOutputStream 和ObjectInputStream 来处理。
  • 相关阅读:
    Android-WebView路由登录192.168.1.1
    Win7 & VirtualBox虚拟Ubuntu 本地虚拟机之间文件共享
    Android 简单的JNI编程
    Android ActionBar简单使用
    多个APK之间简单数据共享
    js代码移动Div 移动平台与PC平台
    JavaScript面向对象
    《SSO CAS单点系列》之 APP原生应用如何访问CAS认证中心
    insh.exe:*** Couldn't reserve space for cygwin's heap,Win32 error 0
    解决:SSM框架中普通类调用Service的问题 (转)
  • 原文地址:https://www.cnblogs.com/amunote/p/4139188.html
Copyright © 2011-2022 走看看