不爱生姜不吃醋⭐️
如果本文有什么错误的话欢迎在评论区中指正
与其明天开始,不如现在行动!
🌴前言
本文内容是关于TCP协议的相关知识,包括概念、客户端发送数据代码和服务端接收数据代码的实现。
🌴TCP协议
1.相关概念
TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket
对象,通信之前要保证连接已经建立。
通过Socket
产生IO流来进行网络通信,客户端要传输数据,使用输出流,服务端要接收数据,使用输入流。
2.客户端
- 创建客户端的Socket对象与指定服务端连接(
Socket(String host,int port)
) - 获取输出流,写数据(
OutputStream getOutputStream()
) - 释放资源(
void close()
)
public class Client {
public static void main(String[] args) throws IOException {
//TCP协议,发送数据
//1.创建Socket对象
//细节:在创建对象的同时会连接服务端
// 如果连接不上,代码会报错
Socket socket = new Socket("127.0.0.1",10000);
//2.可以从连接通道中获取输出流
OutputStream os = socket.getOutputStream();
//写出数据
os.write("你好你好".getBytes());//12字节
//3.释放资源
os.close();
socket.close();
}
}
3.服务端
- 创建服务器端的Socket对象(
ServerSocket(int port)
) - 监听客户端连接,返回一个Socket对象(
Socket accept()
) - 获取输入流,读数据,并把数据显示在控制台(
InputStream getInputStream()
) - 释放资源(
void close()
)
public class Server {
public static void main(String[] args) throws IOException {
//TCP协议,接收数据
//1.创建对象ServerSocker
ServerSocket ss = new ServerSocket(10000);
//2.监听客户端的链接
Socket socket = ss.accept();
//3.从连接通道中获取输入流读取数据
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
// BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
int b;
while ((b = br.read()) != -1){
System.out.print((char) b);
}
//4.释放资源
socket.close();
ss.close();
}
}
4.运行结果
🌴总结
文章中代码的编写使用的都是Java网络编程知识,多加练习熟能生巧。
本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家😘!!!