Java中的TCP发送和接收数据

本文介绍了Java中如何通过Socket和ServerSocket进行TCP通信,包括Socket的构造方法、相关操作流的方法,以及ServerSocket用于服务器端接受客户端连接的方法。实例展示了发送字符串'hello,tcp'到指定主机和接收数据的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、发送数据

一、Java中的TCP通信

  • Java对基于TCP协议的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信
  • Java为客户端提供了Socket类,为服务器端提供了ServerSocket类

二、构造方法

  • Socket(InetAddress address,int port):创建流套接字并将其连接到指定IP指定端口号
  • Socket(String host,int port):创建流套接字并将其连接到指定主机上的指定端口号

三、相关方法

InputStream getInputStream():返回此套接字的输入流

OutputStream getOutputStream():返回此套接字的输出流

public class Test{
   
    public static void main(String[] args) throws IOException {
   
        Socket
Java中,我们可以使用java.net包下的SocketServerSocket类来实现TCP通信的发送接收。以下是一个简单的客户端-服务器端模型: ### 客户端示例 (发送数据): ```java import java.io.*; import java.net.Socket; public class TcpClient { public static void main(String[] args) { try { // 创建Socket实例 Socket socket = new Socket("localhost", 8080); // 地址端口 System.out.println("Connected to server"); // 获取OutputStream来发送数据 OutputStream outputStream = socket.getOutputStream(); String message = "Hello from client"; byte[] bytes = message.getBytes(); // 转换为字节数组 // 发送数据 outputStream.write(bytes); outputStream.flush(); // 关闭连接 socket.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` ### 服务器端示例 (接收数据): ```java import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class TcpServer { public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8080); // 监听的端口 System.out.println("Server started, listening on port 8080"); while (true) { Socket clientSocket = serverSocket.accept(); // 等待并接受连接 try (BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true)) { String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println("Received: " + inputLine); // 可在此处处理接收到的数据 out.println("Message received and acknowledged"); } } finally { clientSocket.close(); } } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值