서버와 클라이언트가 가위바위보를 하는 구조
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class RSPServer {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
final int SISSOR = 1;
final int ROCK = 2;
final int PEPER = 3;
InputStream in;
OutputStream out;
BufferedReader reader;
PrintWriter writer;
int port = 1234;
try {
ServerSocket server = new ServerSocket(port);
while (true) {
System.out.println("접속을 기다리는 중입니다.");
Socket clnt = server.accept();
System.out.println(clnt.getInetAddress() + "접속");
out = clnt.getOutputStream();
System.out.println("가위 바위 보를 시작합니다.");
System.out.println("1가위 2바위 3보 숫자를 입력하세요");
int rsp = scan.nextInt();
out.write(rsp);
in = clnt.getInputStream();
reader = new BufferedReader(new InputStreamReader(in));
System.out.println("상대방 : " + reader.read());
if (reader.read() == rsp) {
System.out.println("무승부");
} else if (reader.read() == SISSOR && rsp == PEPER) {
System.out.println("user 승!");
} else if (reader.read() == ROCK && rsp == SISSOR) {
System.out.println("user 승~");
} else if (reader.read() == PEPER && rsp == ROCK) {
System.out.println("user 승");
} else {
System.out.println("computer 승");
}
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class RSPClient {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
RSP rspclass = new RSP();
int port = 1234;
String localHost = "xxx.xx.xx.xx";
try {
Socket socket = new Socket(localHost, port);
OutputStream out = socket.getOutputStream();
PrintWriter writer = new PrintWriter(out, true);
System.out.println("가위 바위 보를 시작합니다.");
System.out.println("1가위 2바위 3보 숫자를 입력하세요");
int rsp = scan.nextInt();
writer.println(rsp);
InputStream in = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
System.out.println("상대방 : " + reader.read());
} catch (UnknownHostException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Server에서 if문이 작동이 되지 않는다
아마 메시지를 받는 과정에서 숫자열이 전달되지 않는 문제 인 것 같은데 어떻게 해결해야 할지 아직 모르겠다.