java

Java.서버_네트워크 게임 만들때 유용한 Socket 교차 알고리즘 2부(클라이언트편)

sieunju 2016. 8. 4. 23:57
반응형
안녕하세요 j.sieun 입니다. 

저번시간에 서버에 대해서 소개를 했다면, 이번시간에는 클라이언트에 대해서 적어보도록 하겠습니다. 
우선 실행 화면부터 보여드리겠습니다. 


그리고 소스를 보여드리겠습니다. 

저번 글과 마찬가지로 소스양은 많습니다. 이점 유의 해주시길 바랍니다. ;;

-Client.java


이 클라이언트를 실행시키는 Login.java 소스입니다.

우선 클라이언트 소스를 보겠습니다. 

public void initialize() {  자바 Swing 소스 입니다. 

public void updateData(ServerData data) {  서버 편에서 알려드렸듯이 서버도 이 메서드가 중요하지만

클라이언트도 중요합니다. 서버와 클라이언트가 받는 데이터를 최종적으로 여기서 받고 값이 변경하기 때문에

중요한 메서드입니다.  이 메서드를 처음 볼 때는 이해가 안됩니다. 저걸 사용하기 위해서 

자바 "직렬화(Serialization)" 를 사용했습니다. 즉, 쉽게 말해서 구조체를 byte형식으로 바꿔서 데이터를 보냈다고 생각하시면 될거 같습니다.

public void makeConnection(String host, String nam) {  서버 접속메서드 입니다. 

소스를 해석 하자면 소켓에 접속을 하고, 그것을 ObjectOutputStream(객체 직렬화) 해서 데이터를 Out(보내거나)
In(받습니다.)

그리고 "ServerData" 라는 서버에 ServerData.Login 가 있는 위치로 데이터를이름과 정보를 보냅니다.

그리고 ClientThread가 실행이 됩니다. 

public synchronized void sendMessage(ServerData data)

서버한테 데이터 보내는 메서드입니다.

 

다음번에는 ServerData 에 대해서 포스팅 해보도록 하겠습니다. 


/*

포스팅하면서 제 1년도 더 된 소스를 보니까 진짜 복잡하기 그지 없더군요 ㅡㅡ;

시간되면 좀더 간단히 만들고 싶다는 생각이 듭니다. :D

 추가적으로 메임하수 주석처리 한거는 일부러 그런거입니다. :D

*/



반응형