• TCP通信-实现 1 发 1 收


    TCP协议回顾:

    • TCP是一种 面向连接安全可靠 的传输数据的协议
    • 传输前,采用 "三次握手" 方式,点对点通信 ,是可靠的
    • 在连接中可进行大数据量的传输

    编写 客户端 代码

    1. package com.csdn.d5_socket1;
    2. import java.io.IOException;
    3. import java.io.OutputStream;
    4. import java.io.PrintStream;
    5. import java.net.Socket;
    6. /**
    7. * 目标:完成 Socket 网络编程入门案例的 客户端开发,实现 1 发 1 收
    8. */
    9. public class ClientDemo1 {
    10. public static void main(String[] args) {
    11. try{
    12. System.out.println("===客户端启动===");
    13. //1、创建Socket通信管道请求有服务端的连接
    14. Socket socket = new Socket("127.0.0.1", 7777);
    15. //2、从socket通信管道中得到一个字节输出流 负责发送数据
    16. OutputStream os = socket.getOutputStream();
    17. //3、把低级的字节流包装成打印流
    18. PrintStream ps = new PrintStream(os);
    19. //4、发送消息
    20. ps.println("我是TCP的客户端,我已经与你对接,并发出邀请;约吗?");
    21. ps.flush();
    22. } catch (IOException e) {
    23. throw new RuntimeException(e);
    24. }
    25. }
    26. }

    编写 服务端 代码、原理分析 

    1. package com.csdn.d5_socket1;
    2. import java.io.BufferedReader;
    3. import java.io.IOException;
    4. import java.io.InputStream;
    5. import java.io.InputStreamReader;
    6. import java.net.ServerSocket;
    7. import java.net.Socket;
    8. /**
    9. * 目标:开发 Socket 网络编程入门代码的 服务端 ,实现接收消息
    10. */
    11. public class ServerDemo2 {
    12. public static void main(String[] args) {
    13. try {
    14. System.out.println("===服务端启动成功===");
    15. //1、注册端口
    16. ServerSocket serverSocket = new ServerSocket(7777);
    17. //2、必须调用accept方法:等待接收客户端的Socket连接请求,建立Socket通信管道
    18. Socket socket = serverSocket.accept();
    19. //3、从socket通信管道中得到一个字节输入流
    20. InputStream is = socket.getInputStream();
    21. //4、把字节输入流包装成缓冲字符输入流进行消息的接收
    22. BufferedReader br = new BufferedReader(new InputStreamReader(is));
    23. //5、按照行读取消息
    24. String msg;
    25. if ((msg = br.readLine()) != null) {
    26. System.out.println(socket.getRemoteSocketAddress() + "说了:" + msg);
    27. }
    28. } catch (IOException e) {
    29. throw new RuntimeException(e);
    30. }
    31. }
    32. }

  • 相关阅读:
    神经网络-使用Sequential搭建神经网络
    嵌入式开发:在嵌入式设备上实现出色UI体验的挑战。
    CSS优先级
    关于神经网络的思考
    Windows通过RDP异地远程桌面Ubuntu【内网穿透】
    unordered_map算法
    [容斥][数论]Count GCD Codeforces1750D
    day32-线程基础02
    Liunx-02建立liunx实验环境
    大众集团「换舵手」,软件战略从「自研优先」转向开放协作
  • 原文地址:https://blog.csdn.net/m0_65152767/article/details/133932301