TCP 客户端和服务端交互简单例子

本文介绍了一个简单的TCP客户端和服务端交互案例,包括客户端如何发送数据到服务端,以及服务端如何接收并响应这些数据。客户端通过Socket对象连接到指定IP和端口,使用输出流发送消息,并从输入流中读取服务端的反馈;服务端则监听指定端口,接受客户端连接,读取客户端消息并回复确认信息。

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

//客户端

package com.lxb.test;


import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;


public class TCPClientDemo2 {


public static void main(String[] args) throws UnknownHostException, IOException {
// 客户端发数据到服务端


/*
* TCP传输客户端建立过程
* 1:创建TCP客户端socket服务,使用的是Socket对象
* 建议该对象一创建就明确目的地,要连接的主机
* 2:如果连接建立成功,说明数据传输通道已建立
* 该通道就是socket流,是底层建立好的,既然是流,说明这里既有输入又有输出
* 想要输入或者输出对象,可以找socket来获取
* 可以通过getOutputStream和getInputStream获取两个字节流
* 3:使用输出流,将数据写出
* 4:关闭资源
*/

//创建客户端socket服务
Socket socket=new Socket("192.168.174.1", 10002);

//获取socket流中的输出流
OutputStream out=socket.getOutputStream();

//使用输出流将指定的数据写出去
out.write("TCP演示,哥们又来了。。。".getBytes());

//读取服务端返回的数据,使用socket读取流
InputStream in=socket.getInputStream();
byte[] buf=new byte[1024];
int len=in.read(buf);
String text=new String(buf,0,len);
System.out.println(text);

//关闭资源
socket.close();

}


}

//服务端

package com.lxb.test;


import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;


public class TCPServerDemo2 {


public static void main(String[] args) throws IOException {
// 服务端接收客户端发送过来的数据,并打印在控制台上
/*
* 创建TCP服务端思路
* 1:创建服务端socket服务,通过serverSocket对象
* 2:服务端必须对外提供一个端口,否则客户端无法连接
* 3:获取连接过来的客户端对象
* 4:通过客户端对象获取socket流读取客户端发来的数据
* 5:关闭资源。关客户端,服务端
*/
//创建服务端对象
ServerSocket ss=new ServerSocket(10002);
//获取连接过来的客户端对象
Socket s=ss.accept();
String ip=s.getInetAddress().getHostAddress();
//通过socket对象获取输入流,要读取客户端发来的数据
InputStream in=s.getInputStream();
byte[] buf=new byte[1024];
int len=in.read(buf);
String text=new String(buf,0,len);
System.out.println(ip+":"+text);

//使用客户端socket对象的输出流给客户端返回数据
OutputStream out=s.getOutputStream();
out.write("收到".getBytes());

s.close();
ss.close();

}


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值