Newer
Older
nonet / src / ch / epfl / lca / sc250 / ServentServer.java
@Andreas Jaggi Andreas Jaggi on 4 May 2006 2 KB Completed exercice 2 of lab 7
package ch.epfl.lca.sc250;

import javax.swing.JOptionPane;

import java.io.*;
import java.net.*;

/**
 * @author Christophe Trefois
 *
 */
public class ServentServer {

	public static void main(String[] args) throws IOException {
		// Open a Socket and listen on incoming offer requests.
		//
		boolean result;
		String message;
		ServerSocket knockSock;
		Socket sock;
		int targetport = 13371;
		BufferedReader inReader;
		DataOutputStream outStream;
		
		knockSock = new ServerSocket(targetport);

		while ( true ) {

			sock = knockSock.accept();

			outStream = new DataOutputStream(sock.getOutputStream());
			inReader = new BufferedReader(new InputStreamReader(sock.getInputStream()));

			message = inReader.readLine();

			String[] parsed = message.split(", ");

			// We suppose we got and parsed an offer, we then want the pop-up to display
			result = getOfferResult(sock.getInetAddress().toString(), parsed[0], parsed[1]);

			if(result) {
				System.out.println("Yes");
				outStream.writeBytes("Yes\n");
			} else {
				System.out.println("No");
				outStream.writeBytes("No\n");
			}

			sock.close();
		}
	}
	
	/**
     * When an offer is received, display a Confirm Dialog where the user can choose Yes or No
     * @param IP The IP we got the offer from
     * @param amount The amount the other player gives us for a letter
     * @param position The position of the letter he wants to buy
     * @return True or False
     */

    public static boolean getOfferResult(String IP, String amount, String position) {
          boolean chosenValue = false;
          String msgToDisplay = "Buyer from IP: " + IP + "\nWants to buy Letter at Position " + position + " for " + amount + "$";
          int returnValue = JOptionPane.showConfirmDialog(null, msgToDisplay, "You got an Offer !", JOptionPane.YES_NO_OPTION);
          if(returnValue == JOptionPane.OK_OPTION) {
                chosenValue = true;
          } else {
                chosenValue = false;
          }
          return chosenValue;
    }

}