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();
            }
        }
    }
  • 相关阅读:
    移动硬盘插入电脑后检测到却不显示如何解决?
    Js求角度、三角形、弧度计算
    Python之常用模块(一)
    PostgreSQL中的MVCC 事务隔离
    520了,用32做个简单的小程序
    “TensorFlow 开发者出道计划”全攻略,玩转社区看这里!
    MySQL 返回未包含在group by中的列
    《Mysql日志备份/恢复》大型详细攻略两万字图解(史上最详细,多图)
    年轻就该多尝试,教你20小时Get一项新技能
    Flutter开发指南之理论篇:Dart语法05(单线程模型,事件循环模型,Isolate)
  • 原文地址:https://www.cnblogs.com/xixixing/p/9636734.html
Copyright © 2011-2022 走看看