使用TCP连接(套接字编程)在Java中将2D矩阵从客户端发送到服务器



我需要使用以下包将2D矩阵从客户端发送到服务器端:

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket; 

我已经从用户那里读取了一个矩阵,我需要将其发送到服务器以对其执行某些操作。如何发送完整的矩阵?我发送的是多个变量,而不仅仅是一个矩阵。我正在发送整数和矩阵。

因此,在尝试了一些我认为可行的方法后,我找到了这个问题的简单解决方案。

客户端代码

// Make a new client side connection
Socket clientSocket = new Socket("localhost", 9000);

// Create an output stream
DataOutputStream dataOutput = new DataOutputStream(clientSocket.getOutputStream());
// Send data to the server
// Send the number of nodes and the matrix
dataOutput.writeInt(nodes);
dataOutput.flush();
for (int i = 0; i < nodes; i++)
for (int j = 0; j < nodes; j++)
dataOutput.writeInt(adjMatrix[i][j]);
dataOutput.flush();

并且将接收矩阵的服务器端上的代码如下。

// create a server socket and bind it to the port number 
ServerSocket serverSocket = new ServerSocket(9000); 
System.out.println("Server has been started");

while(true){

// Create a new socket to establish a virtual pipe 
// with the client side (LISTEN)
Socket socket = serverSocket.accept(); 

// Create a datainput stream object to communicate with the client (Connect)
DataInputStream input = new DataInputStream(socket.getInputStream()); 

// Collect the nodes and the matrix through the data
int nodes = input.readInt();
int adjMatrix[][] = new int[nodes][nodes]; // Create the matrix
for (int i = 0; i < nodes; i++)
for (int j = 0; j < nodes; j++)
adjMatrix[i][j] = input.readInt();
}

这个对我有效的解决方案可以用于解析任何类型的数据流。

相关内容

  • 没有找到相关文章

最新更新