Java TCP发送与接收

博客不再赘述IP地址、端口号、主机名、Socket、UDP、TCP等概念,直接给出实例。包含发送端、接收端代码,还介绍了测试步骤,即先运行服务端开启监听,再开启发送端,最后附上API文档说明,方便理解代码。

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

IP地址?端口号?主机名?

什么是Socket?

什么是UDP?

什么是TCP?

UDP和TCP区别?

以上问题请自行百度,有标准解释,此处不再赘述,直接上干货!

实例:

 

发送端: 

public class TCPClient {
	public static void main(String[] args) throws  IOException {
		//创建Socket对象
		Socket s = new Socket(InetAddress.getByName("127.0.0.1"),10086);
		//获取输出流对象
		OutputStream os = s.getOutputStream();
		//发送数据
		String str = "This TCP,im comming";
		os.write(str.getBytes());
		//释放
		s.close();
	}

}

接收端:

public class TCPServer {
	public static void main(String[] args) throws IOException {
		//创建Socket对象
		ServerSocket ss = new ServerSocket(10086);
		//监听(阻塞)
		Socket s = ss.accept();
		//获取输入流对象
		InputStream is = s.getInputStream();
		//获取数据
		byte[] bys = new byte[1024];
		int len;
		len = is.read(bys);
		//输出数据
		InetAddress address = s.getInetAddress();
		System.out.println("sender:"+address);
		System.out.println(new String(bys,0,len));
		//释放
		s.close();
		/*
		 * 说明:
		 * 	当你访问百度的时候,退出了,它的服务就关了吗?   不关,还会继续监听
		 */
		
	}

}

测试:

先运行server服务端,开启监听

在开启发送端

服务器就会监听到发送端发来的消息

 

 

 

最后附上API 文档说明,防止有些人看不懂代码

Java中,我们可以使用java.net包下的Socket和ServerSocket类来实现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、付费专栏及课程。

余额充值