zoukankan      html  css  js  c++  java
  • Socket的使用

    1.socket是网络编程,又称套接字编程.

    2.socket使用TCP/UDP协议

    3.TCP分为:应用层,会话层,表示层,传输层,网络层,数据链路层,物理层

     UDP分为:网络层,网际层,应用层

    4.服务器使用ServerSocket(port)

     客户端使用Socket(ip,port)

    5.在服务器和客户端之前传输使用IO通道,以队列的方式进行传送

    6.步骤:

      服务器,客户端:

        1.创建ServerSocket(socket)对象,设置端口号

        2.创建InputStream流对象

        3.读取IO流

        4.shutdown结束流

        5.关闭流对象

    服务器端代码

    /**
     * 
     * @author Administrator
     * 服务器端
     */
    public class serverSocket {
        
        public static void main(String[] args) {
            
            try {
                //1.创建socket服务器端对象
                ServerSocket serverSocket = new ServerSocket(8080);
                
                //2.通过accept这个方法可以获得客户端是否连接成功了,如果链接成功返回一个对象
                Socket scoket = serverSocket.accept();
                InetAddress inetAddress = serverSocket.getInetAddress();
                String hostAddress = inetAddress.getHostAddress();
                System.out.println(hostAddress);//获取的是服务器本身的ip地址
                System.out.println("获取服务器端ip地址"+inetAddress.toString());
                if(scoket != null){
                    //连接成功
                    System.out.println("socket客户端连接成功");
                
                //3.通过InputStream获取客户端传来的数据信息
                    //创建inputStream对象
                    InputStream in = scoket.getInputStream();            //定义一个字节数组
                    byte[] bt = new byte[1024];
                    //定义长度
                    int len;
                    FileOutputStream out = new FileOutputStream("aa\cc.txt");
                    while((len = in.read(bt)) != -1){
                        System.out.println("服务器获取到的内容"+new String(bt,0,len));
                        out.write(bt, 0, len);
                    }
                    out.close();
                    in.close();
                }
                //4.释放资源
                
                serverSocket.close();
                
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
    
    }

    客户端代码

    /**
     * 
     * @author Administrator
     *clientSocket客户端代码
     */
    public class ClientSocket {
        
            public static void main(String[] args) {
                
                try {
                    //1.创建socket客户端
                    Socket socket = new Socket("127.0.0.1",8080);
                    if(socket != null){
                        //连接成功
                        //2.向服务器端传输数据
                            //创建字节输出流OutputStream
                        OutputStream outputStream = socket.getOutputStream();
                            //写入内容
                        outputStream.write("你好服务器端".getBytes());
                            //关闭输出流
                        outputStream.close();
                    }
                    //3.关闭socket
                    socket.close();
                } catch (UnknownHostException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
    }
  • 相关阅读:
    java正则表达式语法详解及其使用代码实例 (转)
    【SpringMVC学习09】SpringMVC与前台的json数据交互 (转)
    SpringMVC基于代码的配置方式(零配置,无web.xml)
    倒车入库操作要求
    R通过RJDBC连接外部数据库 (转)
    卡尔曼滤波——11.预测峰值
    卡尔曼滤波——10.均值漂移
    卡尔曼滤波——6.评估高斯分布
    神经网络入门——16实现一个反向传播
    神经网络入门——15反向传播
  • 原文地址:https://www.cnblogs.com/itcx1213/p/8027640.html
Copyright © 2011-2022 走看看