zoukankan      html  css  js  c++  java
  • java 基于tcp客户端服务端发送接收数据

    客户端:

    package demo03;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    
    
    
    /*
     * 实现TCP客户端,接收到服务器
     * 和服务器实现数据交换
     * 实现TCP客户端程序的类 java.net.Socket
     * 
     * 构造方法:
     *         Socket(String host,int port) 传服务器IP和端口号
     *         注意:构造方法只要运行,就会和服务器进行连接,连接失败,抛出异常
     * 
     *         OutputStream getOutputStream() 返回套接字的输出流
     *             作用:将数据输出,输出到服务器
     * 
     *         InputStream getInputStream() 返回套接字的输入流
     *             作用:从服务端读取数据
     * 
     *         客户端服务器数据交换,必须使用套接字对象Socket中的获取的IO流,自己new流,不行
     */
    public class TCPClient {
        public static void main(String[] args) throws IOException{
            //创建Socket对象,连接服务器
            Socket socket=new Socket("127.0.0.1",8888);
            //通过客户端的套接字对象Socket方法,获取字节输出流,将数据写向服务器
            OutputStream out=socket.getOutputStream();
            out.write("服务器你好!".getBytes());
            
            //读取服务器发回的数据,使用socket套接字对象中的字节输入流
            InputStream in=socket.getInputStream();
            byte[] data=new byte[1024];
            int len=in.read(data);
            System.out.println(new String(data,0,len));
            
            socket.close();
        }
    }

    服务端:

    package demo03;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    /*
     * 实现TCP服务器程序
     * 表示服务器程序的类 java.net.ServerSocket
     * 构造方法:
     *         ServerSocket(int port) 传递端口号
     * 
     * 很重要的事情:必须要获得客户端的套接字对象Socket
     *     Socket accept()
     */
    public class TCPServer {
        public static void main(String[] args)throws IOException {
            ServerSocket server=new ServerSocket(8888);
            //调用服务器套接字对象中的方法accept()获取客户端套接字对象
            Socket socket=server.accept();
            //通过客户端套接字对象,socket获取字节输入流,读取的是客户端发送来的数据
            InputStream in=socket.getInputStream();
            byte[] data=new byte[1024];
            int len=in.read(data);
            
            System.out.println(new String(data,0,len));
            
            //服务器向客户端回数据,字节输出流,通过客户端套接字对象获取字节输出流
            OutputStream out=socket.getOutputStream();
            out.write("收到,谢谢".getBytes());
            
            socket.close();
            server.close();
            
        }
    }
  • 相关阅读:
    图片数据增强
    Crowd Counting using Deep Recurrent Spatial-Aware Network (IJCAI2018)(人群密度)(待补)
    Crowd Counting by Adaptively Fusing Predictions from an Image Pyramid (BMVC2018)
    Top-Down Feedback for Crowd Counting Convolutional Neural Network (AAAI2018) (人群密度)
    [SANet] Scale Aggregation Network for Accurate and Efficient Crowd Counting (ECCV2018)(人群密度)
    Human Protein Atlas Image
    google
    AE(auto encoder)
    feature aggregate
    Arcgis Server api for javascript加载天地图(转)
  • 原文地址:https://www.cnblogs.com/benjamin77/p/9147146.html
Copyright © 2011-2022 走看看