zoukankan      html  css  js  c++  java
  • TCP程序设计

    客户端套接字Socket类

    Socket client=new Socket("192.168.0.1",1100); //服务器的IP地址,可以是字符串或InetAddress对象,1100是服务器端口

    Socket类常用方法:
    getInputStream() 获取套接字输入流,返回InputStream对象
    getOutputStream() 获取套接字输出流,返回OutputStream对象
    isConnected() 查看套接字是否连接
    close() 关闭套接字

    服务器套接字ServerSocket类
    ServerSocket server=new ServerSocket(1100); //1100是服务器开启的端口

    ServerSocket类常用的方法:
    accept() 等待客户端的连接,返回成功连接的Socket对象
    getInetAddress() 返回此服务器套接字的本地地址
    isClosed() 查看服务器套接字是否关闭
    close() 关闭套接字


    【案例】
    创建两个Project,一个Server(服务器),一个Client(客户端),首先启动服务器,等待客户端访问

             

    public class Server {
        public static void main(String[] args) {
            ServerSocket server= null;//创建服务器套接字
            try {
                server = new ServerSocket(1100);
                System.out.println("服务器启动成功,等待客户端访问...");
                //等待客户端连接,服务器通过此行代码与客户端互通
                Socket client=server.accept();
                System.out.println("有客户端接入,客户端IP:"+client.getInetAddress());
    //服务器从客户端接收的消息
                InputStream in=client.getInputStream();//输入流
                byte[] bt=new byte[1024];//创建字节数组,并指定大小
                int len=in.read(bt);//读入client字节流内容
                String data=new String(bt,0,len);//字节转字符
                System.out.println("客户端发来消息:"+data);
    //服务器反馈给客户端的信息
                OutputStream out=client.getOutputStream();//输出流
                String message="我是服务器,欢迎访问";
                out.write(message.getBytes());//输出的内容,字符串转字节(字符数组)
    
                client.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    public class Client {
        public static void main(String[] args) {
            try {
                Socket client=new Socket("127.0.0.1",1100);//创建套接字,指定服务器地址、端口。有效则自动连接
                System.out.println("连接成功");
    //客户端发给服务器的消息
                OutputStream out=client.getOutputStream();//输出流
                String message="我是客户端";
                out.write(message.getBytes());//输出的内容,字符串转字节(字符数组)
    //客户端接收服务器反馈的信息
                InputStream in=client.getInputStream();//输入流
                byte[] bt=new byte[1024];//创建字节数组,并指定大小
                int len=in.read(bt);//读入client字节流内容
                String data=new String(bt,0,len);//字节转字符
                System.out.println("服务器反馈的消息:"+data);
    
                client.close();//关闭套接字
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    iptbales未完全删除或禁用的问题
    一键部署安装
    python表单流式上传gzip格式文件代码
    was进行jvm配置和GC收集
    Nginx心跳检测
    Python简单本地加解密
    vmware克隆虚拟机并设置网络(vcenter6或5.5)
    python操作mongodb数据库
    vue props传值后watch事件未触发的问题
    docker实战之通过nginx镜像来部署静态页
  • 原文地址:https://www.cnblogs.com/xixixing/p/9636734.html
Copyright © 2011-2022 走看看