Java利用TCP协议实现客户端与服务器通信攻略
前言
在Java中实现TCP协议的客户端和服务器之间的通信,可以借助于Java中提供的Socket和ServerSocket类。其中,Socket类实现客户端的创建,ServerSocket类实现服务器的创建。本篇文档将详细讲解如何利用Java实现TCP协议的客户端与服务器之间的通信。
步骤
Java实现TCP协议的客户端与服务器之间的通信的步骤如下:
- 服务器端创建一个ServerSocket对象,并指定端口号;
- 服务器调用ServerSocket对象的accept()方法来监听客户端的连接请求;
- 客户端创建一个Socket对象,并指定服务器的IP地址和端口号;
- 客户端调用Socket对象的getInputStream()和getOutputStream()方法获取输入输出流,并利用它们来进行通信;
- 服务器调用accept()方法后,返回一个Socket对象,服务器可以通过Socket对象来接收客户端发送的数据;
- 客户端调用输出流的write()方法将数据发送给服务器;
- 服务器调用输入流的read()方法来读取数据。
下面通过示例来具体说明以上步骤。
示例1
服务器端代码如下:
public class TCPServer {
public static void main(String[] args) throws IOException {
ServerSocket ss = new ServerSocket(8888);
Socket s = ss.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = br.readLine();
System.out.println("客户端发送的数据为:" + str);
ss.close();
}
}
客户端代码如下:
public class TCPClient {
public static void main(String[] args) throws IOException {
Socket s = new Socket("localhost", 8888);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write("Hello, world!");
bw.flush();
s.close();
}
}
以上代码可以实现客户端向服务器发送一条消息,并在服务器端将该消息输出。
示例2
服务器端代码如下:
public class TCPServer {
public static void main(String[] args) throws IOException {
ServerSocket ss = new ServerSocket(8888);
while (true) {
Socket s = ss.accept();
new Thread(new Runnable() {
@Override
public void run() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = br.readLine();
System.out.println("客户端发送的数据为:" + str);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write("谢谢连接,再见!");
bw.flush();
s.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}
}
客户端代码如下:
public class TCPClient {
public static void main(String[] args) throws IOException {
Socket s = new Socket("localhost", 8888);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
bw.write("Hello, world!");
bw.flush();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = br.readLine();
System.out.println("服务器响应的数据为:" + str);
s.close();
}
}
以上代码可以实现客户端向服务器发送一条消息,服务器将该消息输出,并向客户端发送一条响应。客户端收到响应后将其输出。
结尾
以上就是Java实现TCP协议的客户端与服务器之间的通信攻略。通过以上示例,相信大家已经能够熟练掌握如何利用Java实现TCP协议的客户端与服务器之间的通信了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java利用TCP协议实现客户端与服务器通信(附通信源码) - Python技术站