package tutorial.client5;

import javax.swing.JOptionPane;

import kr.fujitsu.com.ffw.daemon.net.client.ClientActionSocket;
import kr.fujitsu.com.ffw.daemon.net.filter.Filter;
import kr.fujitsu.com.ffw.util.ExceptionUtil;

import org.apache.log4j.Logger;

public class TutorialClientActionSocket5 extends ClientActionSocket{
	private static Logger logger = Logger.getLogger(TutorialClientAction5.class);
	
	public TutorialClientActionSocket5(String ip, int port, Filter filter)
			throws Exception {
		super(ip, port, filter);
	}

	public void justDoIt() {
		try {
			if (isConnectionException() != null) {
				// 여기서 통신 접속 에러 처리 할 것
				//loggger.info("에러");
				logger.error(ExceptionUtil.stack2string(
						(Exception)isConnectionException().getCause()));
			} else {
				// TutorialClientAction에서 지정한 소켓별 전송 메시지를 가져온다.
				String sndMsg = (String)getUserMap("telegram");
				// 전송 메시지를 전송(byte[]로 보내는 이유는 사용하는 Filter를 
				// BasicByteFilter로 지정했기 때문

				//JOptionPane.showMessageDialog(null,sndMsg);
				//System.out.println(sndMsg);
				logger.info("▶SEND▶ " + sndMsg);		
				send(sndMsg.getBytes());		
				
				// byte[]로 데이터를 전송받는다.45+24
				// receive는 ClientActionSocket에 정의(Object가 리턴형임) 
				String ret =  new String((byte[])receive());				
				logger.info("▶RECEIVED▶ " + ret.trim()); 
			}
		} catch (Exception e) {
			logger.info("", e);
		}
	}

}
