synchronized public boolean setUp(Socket socket) {
		middleServer.startServer(socket);
		middleClient.startClient();

		serverDataLen = middleClient.getInput(serverData);
		if (sharedData.isOutputFlag()) {
			System.out.println("s");
			showData(serverData, serverDataLen);
		}
		middleServer.sendOutput(serverData, serverDataLen);
		clientDataLen = middleServer.getInput(clientData);

		if (sharedData.isOutputFlag()) {
			System.out.println("c");
			showData(clientData, clientDataLen);
			System.out.println("send client info");
		}

		middleClient.sendOutput(clientData, clientDataLen);

		serverDataLen = middleClient.getInput(serverData);

		if (sharedData.isOutputFlag()) {
			System.out.println("s");
			showData(serverData, serverDataLen);
		}

		if (sharedData.isOutputFlag())
			System.out.println("get server OK packet");

		middleServer.sendOutput(serverData, serverDataLen);

		if (isErrorPacket(serverData, serverDataLen)) {
			printFailConnection();
			return false;
		}

		sharedData.addClient();
		clientPortNum = middleServer.getClientPort();
		clientID = sharedData.getNumClient();
		try {
			setFileOutputStream();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		System.out.println("client(" + clientPortNum + ") login");

		return true;
	}