728x90
반응형
아래 코딩을 각각 실행 후 아래 콘솔에서 대화를 시도한다.
1.BackEndServer2 프로젝트
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Main {
public static String strEnd="";
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(8888);
Socket s = ss.accept(); // netstat -anp tcp | find "6666"
DataInputStream dis = new DataInputStream(s.getInputStream());
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str2 = "";
Thread sockThread = new Thread() {
String str = "";
@Override
public void run() {
try {
while(true) {
str = dis.readUTF();
strEnd=str;
if(str.equals("stop")) break;
System.out.println("client says:"+str);
}
} catch (Exception e) {}
}
};
sockThread.start();
while(!strEnd.equals("stop")) {
str2=br.readLine();
dos.writeUTF(str2);
dos.flush();
}
dis.close();
s.close();
ss.close();
}
}
2.FrontEndServer2 프로젝트
import java.io.*;
import java.net.Socket;
public class Main {
public static void main(String[] args) throws Exception {
Socket s = new Socket("localhost",8888);
DataOutputStream dout = new DataOutputStream(s.getOutputStream());
DataInputStream din = new DataInputStream(s.getInputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = "";
Thread sockThread = new Thread() {
String str2="";
@Override
public void run() {
try {
while(true) {
str2 = din.readUTF();
System.out.println("Server says:"+str2);
}
} catch (Exception e) {
}
}
};
sockThread.start();
while(!str.equals("stop")) {
str=br.readLine();
dout.writeUTF(str);
dout.flush();
}
dout.close();
s.close();
}
}
네트워크 포트 연결로 다른 컴퓨터 사용자와도 연결이 가능함
728x90
반응형
'즐거운프로그래밍' 카테고리의 다른 글
[파이썬] 불 연산자와 조건식(Boolean Operator) (0) | 2023.10.25 |
---|---|
[파이썬] 비교 연산자와 조건식(true와 false로 판단되는 결과) (0) | 2023.10.25 |
[자바] 직렬화(Serialization) (0) | 2023.10.24 |
[자바] 간단한 슈팅게임 만들기 예제 2 (1) | 2023.10.24 |
[자바] 간단한 슈팅게임 만들기 예제 1 (0) | 2023.10.24 |