zoukankan      html  css  js  c++  java
  • Socket

    SOCKET

    TCP端口号,用来识别服务器上特定的应用程序 :0~1023 是通用端口 HTTP:80 FTP:20 smtp:25 telnet:23 pop3:110 time :37 1024~65536 可使用


    1.使用BufferedReader从Socket上读取数据

    //建立对服务器的Socket连接
    Socket socket = new Socket("127.0.0.1","5000");//建立对服务器的Socket连接//127.0.0.1 表示本机地址 应写服务器的地址

    //建立连接到Socket上底层输入串流的InputStreamReader 字节--->字符数据
    InputStreamReader stream = new InputStreamReader(socket.getInputStream());
    底层与高层串流件的桥梁 从Socket取得输入串流

    //建立BufferedReader来读取 字符数据--->缓存数据
    BufferedReader reader = new BufferedReader(stream);//BufferedReader链接到InputStreamReader
    String message = reader.readLine();

    reader.close();//关闭所有的串流

    2.使用PrintWriter写数据到Socket上

    //建立对服务器的Socket连接
    Socket socket = new Socket("127.0.0.1","5000");//建立对服务器的Socket连接//127.0.0.1 表示本机地址 应写服务器的地址

    //建立连接到Socket的 PrintWriter
    PrintWriter writer = new PrintWriter(socket.getOutputStream());//PrinterWriter 是字符数据和字节间的转换桥梁,可以链接String和Socket两端

    //写入数据
    writer.println("message to send");
    writer.print("another message");


    编写服务器应用程序需要:一对Socket
    1:等待用户请求的ServerSocket
    2:与用户通信用得Socket

    (1)服务器应用程序对特定端口创建出ServerSocket:
    ServerSocket serverSocket = new ServerSocket(4242);//这会让服务器开始监听来自4242端口的客户请求
    (2)客户端对服务器应用城区建立Socket链接
    Socket s = new Socket("172.0.0.1","4242");
    (3)服务器创建出与客户端通信的新Socket
    Socket s = serverSocket.accept();// acccpt()方法会在等待用户的 Socket连接,当用户发来Socket连接请求,
    //该方法会返回新的Socket(与ServerSocket端口不相同),因此 ServerSocket可空出来等待其他的用户。


    启动新的线程

    (1)建立Runable对象(线程的任务)
    Runnable threadJob = new MyRunnable();

    public class MyRunnable implements Runnable{
    public void run(){ go();};
    }

    (2)建立Thread对象(执行工人),并赋值Runnable(任务)
    Thread myThread = new Thread(threadJob);//新建状态

    (3)启动Thread
    myThread.start();//可执行状态----->执行中(只能靠JAVA虚拟机的线程调度机制来实现)


    线程的并发性问题:使用synchronized关键词来修饰方法使它每次只能被单一的线程存取
    synchronized是作用在java对象上的。

  • 相关阅读:
    js 树型数据 转 数组
    js 数组转树型结构数据
    计算 手机端页面高度和宽度
    解密优酷智能生产技术,看 AI 赋能内容数字化
    从 FFmpeg 性能加速到端云一体媒体系统优化
    导播上云,把 “虚拟演播厅” 搬到奥运村
    揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿
    迈入 8K 时代,AI 驱动超高清 “视” 界到来
    千亿级市场赛道,阿里云视频云拿下 “三连冠”
    50 亿观众的 “云上奥运”,顶级媒体背后的数智化力量
  • 原文地址:https://www.cnblogs.com/Rage-Leila/p/8735651.html
Copyright © 2011-2022 走看看