java tcp连接
时间: 2023-11-29 08:46:26 浏览: 40
Java中实现TCP连接需要使用java.net.Socket类。TCP连接的建立需要进行三次握手,具体步骤如下:
1.客户端向服务器发送SYN包,其中SYN标志位为1,Seq序号为随机值A。
2.服务器收到SYN包后,向客户端发送SYN ACK包,其中SYN和ACK标志位均为1,Seq序号为随机值B,Ack序号为A+1。
3.客户端收到SYN ACK包后,向服务器发送ACK包,其中ACK标志位为1,Seq序号为A+1,Ack序号为B+1。
完成三次握手后,客户端和服务器之间建立连接,可以进行数据传输。
以下是Java中使用Socket类实现TCP连接的示例代码:
```java
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
public class TCPClient {
public static void main(String[] args) throws Exception {
// 创建Socket对象,指定服务器地址和端口号
Socket socket = new Socket("127.0.0.1", 8888);
// 获取输出流,向服务器发送数据
OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello, Server!".getBytes());
// 获取输入流,读取服务器返回的数据
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int len = inputStream.read(buffer);
System.out.println(new String(buffer, 0, len));
// 关闭流和Socket
inputStream.close();
outputStream.close();
socket.close();
}
}
```
```java
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
public class TCPServer {
public static void main(String[] args) throws Exception {
// 创建ServerSocket对象,指定监听的端口号
ServerSocket serverSocket = new ServerSocket(8888);
// 调用accept()方法监听客户端请求,如果有客户端请求连接,则返回一个Socket对象
Socket socket = serverSocket.accept();
// 获取输入流,读取客户端发送的数据
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int len = inputStream.read(buffer);
System.out.println(new String(buffer, 0, len));
// 获取输出流,向客户端发送数据
OutputStream outputStream = socket.getOutputStream();
outputStream.write("Hello, Client!".getBytes());
// 关闭流和Socket
inputStream.close();
outputStream.close();
socket.close();
serverSocket.close();
}
}
```