java

Java.서버_네트워크 게임 만들때 유용한 Socket 교차 알고리즘 4부(쓰레드편)

sieunju 2016. 8. 8. 04:17
반응형

이번 글에는 재밌는 쓰레드(Thread)에 대해서 적어보도록 하겠습니다. 

먼저, 소스 부터 보도록 하겠습니다. 

ServerThread.java

각 메소드별 역활에 대해서 적겠습니다. 


public ServerThread(Server server,Socket soc) throws IOException {

이 클래스가 맨처음 실행되는 첫부분입니다. 이때 변수값과 

쓰레드를 실행하는 것이 들어있습니다. 

throws 란 쉽게 말해서 예외가 생기면 강제로 IOException 으로 던진다(throw) 라고 생각하시면 됩니다. 

한가지더, this.sa = server.cp; cp란 ServerAbout.java 이란 클래스가 있습니다. 그걸 말하는 것입니다.(나중에 이거에 대해서 포스팅 하겠습니다.) 

public void run() {

쓰레드 실행하는 메서드입니다.

그리고 데이터 값이 바뀔때마다 server.updateData(data); 합니다. 

public synchronized void sendMessage(ServerData data) {

이것은 데이터를 보내는 메서드 입니다. 

메서드마다 어떤 역활을 하는지 영어로 해석하면 어떤 역활하는지 알기 떄문에 딱히 더 설명할 부분은

없는거 같습니다. 


그럼 ClientThread 에 대해서 소스 보여드리겠습니다. 

ClientThread.java

각 메서드별 역활에 대해서 설명하도록 하겠습니다. 

public ClientThread(Client ct,ObjectInputStream in) {

ClientThread 가 작동하면 맨처음 들어가는 부분입니다. 

이 부분에서는 변수를 재 조정 하다던가 쓰레드이니 쓰레드를 start() 하는 부분이 되겠습니다. 

public void run() 

쓰레드를 start() 하면 실행 되는 메서드 입니다.

안에는 ServerThread 와 마찬가지로 데이터를 보내는 부분입니다. 


이상 마치도록 하겠습니다.


ps. 학교에서 배우는 서버 & 클라이언트 같은 경우네는 서버클래스 안에 소켓과 그의 맞는 쓰레드 그리고 

클라이언트 클래스 안에 소켓과 그의 맞는 쓰레드 이렇게 한꺼번에 안에 들어가 있는 것을 배웠는데 

저같은 경우는 그것을 각각 따로따로 나눈 것 뿐입니다. 사실 별반 차이는 없습니다. :D




반응형