• 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();
            }
        }
    }
  • 相关阅读:
    插入排序
    排序算法结构表
    两个数字交换的四种方法
    LRU算法实现
    虚拟用户的配置
    【转】Linux查看CPU和内存使用情况
    Linux 多线程开发
    【转】RTSP流理解
    【转】DynDNS使用随笔
    【转】使用 udev 高效、动态地管理 Linux 设备文件
  • 原文地址:https://www.cnblogs.com/xixixing/p/9636734.html
Copyright © 2020-2023  润新知