zoukankan      html  css  js  c++  java
  • [javaSE] 网络编程(TCP通信)

    客户端A与服务端建立通信,服务端获取到客户端ASocket对象,通过这个通路进行通信

    客户端:

    获取Socket对象,new出来,创建客户端的Socket服务,构造参数:Sting主机,int 端口

    调用Socket对象的getOutputStream()方法,获取输出流OutputStream对象

    调用OutputStream对象的write()方法,参数:byte[]字节数组

    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.InetAddress;
    import java.net.Socket;
    
    /**
     * 客户端
     * @author taoshihan
     *
     */
    public class Client {
        public static void main(String[] args) throws Exception, IOException {
            Socket socket=new Socket(InetAddress.getLocalHost(), 10003);
            OutputStream outputStream=socket.getOutputStream();
            outputStream.write("Hello TCP".getBytes());
            
        }
    }

    服务端:

    获取ServerSocket对象,new出来,构造参数:int端口

    调用ServerSocket对象的accept()方法,获取到Socket对象,阻塞式的

    调用Socket对象的getInputStream()方法,获取输入流InputStream对象

    读取输入流,数据量不大,不循环了直接调用InputStream对象的read()方法,参数:byte[]数组

    调用Socket对象的getInetAddress()方法,获取到InetAddress对象

    调用Socket对象的close()方法,关闭客户端

    import java.io.InputStream;
    import java.net.InetAddress;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    /**
     * 服务端
     * 
     * @author taoshihan
     * 
     */
    public class Server {
        public static void main(String[] args) throws Exception {
            ServerSocket serverSocket = new ServerSocket(10003);
            while (true) {
                Socket socket = serverSocket.accept();
                InputStream inputStream = socket.getInputStream();
    
                byte[] buf = new byte[1024];
                int len = inputStream.read(buf);
    
                InetAddress ip = socket.getInetAddress();
                socket.close();
                System.out.println("来自" + ip.getHostAddress() + "说:"
                        + new String(buf, 0, len));
            }
    
        }
    }
  • 相关阅读:
    前后端分离ssm配置跨域
    springboot结合MyBatis中使用foreach
    springboot结合全局异常处理之登录注册验证
    SpringBoot整合shiro从初恋到失恋
    IDEA热布署报错java.lang.IllegalStateException: Restarter has not been initialized
    SpringBoot启动报错Failed to determine a suitable driver class
    Navicat连接远程数据库报1251的错误
    git远程易错点
    数组中出现次数超过一半的数
    二叉树中两个节点的最近公共祖先
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5468154.html
Copyright © 2011-2022 走看看