java实现TCP数据传输反馈

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: java实现TCP数据传输反馈

客户端:

1. 
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.*;
import java.util.Scanner;
public class TCPseed {
  public static void main(String[] args) {
    //创建Socket服务 字符输出流 读取流
    Socket s = null;
    PrintWriter out = null;
    BufferedReader bufIn = null;
    try {
      //指定IP地址和端口
      s = new Socket("这里填服务端IP地址", 10020);
      //指定输出流为s的网络输出流,并可以自动刷新
      out = new PrintWriter(s.getOutputStream(),true);
      //输入流为s的网络输入流
      bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
    } catch (Exception e) {
      // TODO: handle exception
      e.printStackTrace();
    }
    Scanner input = new Scanner(System.in);
    String line = null;
    while(!("over".equals(line))) {
      line = input.nextLine();
      out.println(line);
      String str = null;
      try {
        str = bufIn.readLine();
      } catch (Exception e) {
        // TODO: handle exception
      }
      System.out.println(str);
    }
    try {
      bufIn.close();
      s.close();
      out.close();
    } catch (Exception e) {
      // TODO: handle exception
    }
  }
}

服务端:

import java.io.*;
import java.net.*;
public class TCPrece {
  //这里直接把异常抛出了
  public static void main(String[] args) throws Exception{
    //创建服务端对象,监听10020端口
    ServerSocket ss = new ServerSocket(10020);
    //用ServerSocket里面的accept方法获取客户端对象
    Socket s = ss.accept();
    //获取对方IP 并输出
    System.out.println(s.getInetAddress().getHostAddress()+"连接");
    BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
    PrintWriter out = new PrintWriter(s.getOutputStream(),true);
    String str = null;
    while((str=bufIn.readLine())!=null) {
      System.out.println(str);
      //变成大写并返回
      out.println(str.toUpperCase());
    }
    ss.close();
    s.close();
    bufIn.close();
    out.close();
  }
}
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
7月前
|
网络协议 安全 Java
Java网络编程入门涉及TCP/IP协议理解与Socket通信。
【6月更文挑战第21天】Java网络编程入门涉及TCP/IP协议理解与Socket通信。TCP/IP协议包括应用层、传输层、网络层和数据链路层。使用Java的`ServerSocket`和`Socket`类,服务器监听端口,接受客户端连接,而客户端连接指定服务器并交换数据。基础示例展示如何创建服务器和发送消息。进阶可涉及多线程、NIO和安全传输。学习这些基础知识能助你构建网络应用。
58 1
|
7月前
|
运维 监控 网络协议
由一次线上故障来理解下 TCP 三握、四挥 & Java 堆栈分析到源码的探秘
由一次线上故障来理解下 TCP 三握、四挥 & Java 堆栈分析到源码的探秘
|
5月前
|
网络协议 安全 算法
"网络世界的守护者:一探究竟TCP协议如何确保数据传输的绝对安全与可靠"
【8月更文挑战第20天】传输控制协议(TCP)是网络通信中的核心协议之一,它确保数据包能可靠、有序地从源头传输到目的地。TCP采用三次握手的方式建立连接,并通过序列号、确认应答及超时重传来保障数据传输的准确性。此外,TCP还具备流量控制与拥塞控制功能,避免网络拥塞。虽然TCP在可靠性上表现优异,但在快速传输场景中可能存在局限。深入理解TCP对于网络工程师和开发者至关重要。
102 1
|
5月前
|
网络协议 安全
揭秘TCP背后的秘密:为何三次握手是连接的灵魂,四次挥手是告别的艺术,让数据传输稳如老狗!
【8月更文挑战第4天】TCP为何需三次握手和四次挥手?三次握手确保连接建立时双方均准备好并确认序列号,过程包括:客户端发SYN包;服务器回应SYN+ACK;客户端再回ACK确认,确保可靠通信。四次挥手则确保连接终止时双方能安全、有序地结束数据传输,包括客户端发FIN包;服务器回应ACK并可能继续发送数据;完成后发FIN包;客户端最终确认,确保无数据丢失或状态不一致。
99 9
|
6月前
|
网络协议 Java 网络安全
Java中的网络编程:TCP详解
Java中的网络编程:TCP详解
|
6月前
|
网络协议 Java 数据处理
(一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述
就目前而言,多数网络编程的系列的文章都在围绕着计算机网络体系进行阐述,但其中太多理论概念,对于大部分开发者而言,用途甚微。因此,在本系列中则会以实际开发者的工作为核心,从Java程序员的角度出发,详细解读Java的网络编程核心内容。
118 0
|
7月前
|
网络协议 Java 程序员
TCP/IP协议栈是网络通信基础,Java的`java.net`包提供工具,使开发者能利用TCP/IP创建网络应用
【6月更文挑战第23天】 **TCP/IP协议栈是网络通信基础,它包含应用层(HTTP, FTP等)、传输层(TCP, UDP)、网络层(IP)、数据链路层(帧, MAC地址)和物理层(硬件信号)。Java的`java.net`包提供工具,使开发者能利用TCP/IP创建网络应用,如Socket和ServerSocket用于客户端和服务器通信。**
59 3
|
6月前
|
网络协议 Java
如何在Java中使用Socket编程实现TCP连接?
在Java中,通过Socket编程实现TCP连接非常常见。以下演示了基本的TCP通信流程,可根据具体需求进行扩展。
342 0
|
7月前
|
网络协议 Java
在Java中使用TCP协议搭建一个简单的客户端
如何在Java中使用TCP协议搭建一个简单的客户端
233 2
|
7月前
|
网络协议 Java
java建立非阻塞TCP链接
java建立非阻塞TCP链接

热门文章

最新文章