2009-12-01 6 views
0

먼저 좌표는 아마도 잘못된 용어 일 것입니다. 나는 단순히 x와 y 변수를 전달한다고 가정하지만, 좌표는 좌표를 더 잘 묘사합니다.자바 클라이언트에서 자바 서버로 좌표 전달하기

이제 2 명의 고객이 액세스 할 수있는 서버가 있어야합니다.이 서버는 레이싱 게임이며 각각의 클라이언트가 서로 다른 제어 체계를 사용하여 동시에 경쟁 할 수 있어야합니다. .

경주 용 자동차의 x와 y 위치를 서버로 보내고 서버가 다음 플레이어로 보내고 그 반대의 경우도 도움이되기를 바랍니다. 각 클라이언트 창에서 같은 시간. 지금까지 나는 Sun 웹 사이트의 노크 서버 노크 (knock knock server)와 서버에 보내는 문자열을 반복하는 간단한 에코 서버 (echo server)와 같은 단순한 서버 작업만을 수행했습니다.

문자열 대신 int를 사용하려고하면 전달하려는 int가 동적 인 오류 (각 동작마다 분명히 바뀜)와 정적 (readInt 및 writeInt 사용)으로 전달할 수없는 오류가 발생했습니다.

그래서 서버를 통해 두 클라이언트 창 모두에서 원하는 동작을 만드는 방법에 대한 도움을 주시면 감사하겠습니다.

class Coordinates implements Serializable{...} 

ObjectOutputStream out = new ObjectOutputStream(...); 
out.writeObject(new Coordinates(...)); 

답변

0

간단한 해결책은 ObjectOutputStreamserializable objects와 함께 사용하는 것입니다. 다이내믹/스태틱은 오해입니다. 이것은 당신의 레이싱 게임이나 가치관과 관련이 없습니다. 과도 또는 정적으로 선언

필드는 직렬화 프로세스에 의해 무시된다 : 그것은 ObjectInputStream를위한 Javadoc에 말한대로 그것은 당신이 정적 (또는 과도)를 선언 필드를 역 직렬화 할 수없는 단지입니다.

해결 방법은 간단합니다. static 수정자를 x/y 정수에서 제거하면 문제를 해결할 수 있습니다. btw - String이 정적이라면 정확히 같은 방식으로 실패했을 것입니다.

+0

감사합니다 :) 직렬화 가능 객체에 대한 연구를 통해 좋은 결과를 얻을 수있었습니다. –

0

크레이그, 당신이 가까이있어 :

감사

+0

제안을 주셔서 감사합니다, 불행히도 정수가 main에서 호출되었고, main 메소드를 찾을 수 없다는 것을 실행했을 때 정적 인 원인을 제거합니다. 위에서 언급 한 직렬화 가능한 객체는 필자에게 필요한 것입니다. 다시 한번 고마워. –

관련 문제