네트워크를 사용하여 객체를 전달하는 간단한 프로그램을 작성하려고합니다. 개체에 정적 데이터가 포함될 수 있으므로 데이터를받은 후 정적 데이터가 다시 설정되므로 데이터를 전달하는 방법을 알 수 없습니다. 그게 가능한가? 네트워크를 통해 객체의 정적 데이터를 전달하는 방법은 무엇입니까?
import java.io.*;
import java.net.Socket;
public class client {
private static int PORT = 8901;
private static Socket socket;
public static void main(String[] args) throws Exception{
socket = new Socket("localhost", PORT);
dataStruct ds = new dataStruct();
ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
dataStruct.khar = 1;
oos.writeObject(ds);
oos.close();
}
}
class dataStruct implements Serializable{
static int khar = 0;
public void setData(int khar){
this.khar = khar;
}
}
이
내 고객이며, 다음은 내 서버입니다 :import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class test {
public static void main(String[] args) throws Exception {
ServerSocket listener = new ServerSocket(8901);
Game game = new Game();
Game.Player player1 = game.new Player(listener.accept(), 1);
player1.start();
}
}
class Game {
class Player extends Thread {
int turn;
Player opponent;
Socket socket;
ObjectInputStream input;
public Player(Socket socket, int turn) {
this.socket = socket;
this.turn = turn;
try {
input = new ObjectInputStream(socket.getInputStream());
} catch (IOException e) {
System.out.println("Player died: " + e);
}
}
public void run() {
try {
dataStruct ds = (dataStruct)input.readObject();
System.out.println(ds.khar);
} catch (Exception e) {
System.out.println("Player died: " + e);
} finally {
try {socket.close();} catch (IOException e) {}
}
}
}
}
귀하의 질문은 무엇입니까? 게시 한 코드에 오류가 있습니까? 그렇다면 무엇입니까? – user1875195