zoukankan      html  css  js  c++  java
  • TCP服务端客户端互访

    实际上就是客户端服务端都用到了InputStream和OutputStream来读取和发送数据

    注:服务端获取的流是来自于客户端,哪个客户端与服务端连接,服务端就获取哪个客户端的读取(输出)流

    TCP客户端2:

    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    
    public class TcpClient2 {
    
        public static void main(String[] args) throws Exception, IOException {
    
            //需求:客户端发送数据给服务端,并读取服务端反馈的数据
            System.out.println("客户端2启动.....");
            //1.创建socket客户端
            Socket s = new Socket("192.168.17.1",10004);
            
            //2.获取Socket输出流
            OutputStream out = s.getOutputStream();
            
            out.write("服务端,我来了...".getBytes());
            
            //3.获取socket的读取流,读取服务端发回的数据
            InputStream in = s.getInputStream();
            
            byte[] buf = new byte[1024];
            
            int len = in.read(buf);
            String str = new String(buf,0,len);
            
            System.out.println(str);
            
            s.close();
            
                    
            
        }
    
    }

    TCP服务端2:

    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class TcpServer2 {
    
        public static void main(String[] args) throws Exception {
    
            /*
             * 服务端收到客户端的数据并反馈数据给客户端,应答
             */
            System.out.println("服务端2启动.....");
            
            //1.创建服务端socket对象
            ServerSocket ss = new ServerSocket(10004);
            
            //2.获取客户端对象
            Socket s = ss.accept();//阻塞式
            String ip = s.getInetAddress().getHostAddress();
            System.out.println(ip+"...connected");
            
            //3.获取socket读取流
            InputStream in = s.getInputStream();
            
            byte[] buf = new byte[1024];
            int len = in.read(buf);
            String str = new String(buf,0,len);
            System.out.println(str);
            
            //4.给客户端反馈数据。socket输出流
            OutputStream out = s.getOutputStream();
            
            out.write("哦了,我知道你来了".getBytes());
            
            s.close();
            ss.close();
            
        }
    
    }
  • 相关阅读:
    ocilib(简介2)
    C++ Socket编程步骤 (转载)
    服务端和客户端的疑问
    var和public的区别
    vs2010如何设置能实现输入关键字的时候自动提示呢?
    ocilib(简介)
    iostream.h , iostream
    error C2110: cannot add two pointers
    Array 越界不报错的问题
    char* + int or char or ...
  • 原文地址:https://www.cnblogs.com/qjlbky/p/5931360.html
Copyright © 2011-2022 走看看