UniClient.java
import java.io.*;
import java.net.*;
public class UniClient {
private String ip;
private int port;
private String str;
MsgListener msgListener = null;
msgWriter msgWriter = null;
public UniClient(String ip, int port) throws IOException {
this.ip = ip;
this.port = port;
Socket tcpSocket = getSocket();
msgListener = new MsgListener(tcpSocket);
msgWriter = new msgWriter(tcpSocket);
msgListener.start();
msgWriter.start();
}
public Socket getSocket() {
Socket tcpSocket = null;
try {
tcpSocket = new Socket(ip, port);
} catch (IOException ioe) {
ioe.printStackTrace();
System.exit(0);
}
return tcpSocket;
}
public static void main(String[] args) throws IOException {
new UniClient("localhost", 12345);
}
}
class MsgListener extends Thread {
Socket socket;
private String str;
MsgListener(Socket _s) {
this.socket = _s;
}
public void run() {
try {
InputStream is_socket = socket.getInputStream();
BufferedReader bufferR = new BufferedReader(
new InputStreamReader(is_socket));
while (true) {
str = bufferR.readLine();
if (str.equals("bye")) {
System.out.println("소켓통신 종료하겠습니다.");
break;
} else {
System.out.println("Echo Result : " + str);
}
}
} catch (Exception e) {
System.out.println("err");
}
}
}
class msgWriter extends Thread {
Socket socket;
private String str;
BufferedReader file;
msgWriter(Socket _s) {
this.socket = _s;
}
public void run() {
try {
OutputStream os_socket = socket.getOutputStream();
BufferedWriter bufferW = new BufferedWriter(
new OutputStreamWriter(os_socket));
while (true) {
Thread.sleep(1000);
System.out.print("입력 : ");
file = new BufferedReader(
new InputStreamReader(System.in));
str = file.readLine();
// str += System.getProperty("line.separator"); 구버전용 개행문자
str += System.lineSeparator();
bufferW.write(str);
bufferW.flush();
}
} catch (Exception e) {
System.out.println("err");
}
}
}
UniServer.java
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class UniServer {
ServerSocket ss = null;
Client cients;
public static void main(String[] args) {
UniServer server = new UniServer();
Socket socket = null;
try {
server.ss = new ServerSocket(12345);
System.out.println("Server > Server Socket is Created... ");
while (true) {
socket = server.ss.accept();
UniChat c = new UniChat(socket);
c.start();
}
} catch (IOException e) {
System.out.println("Server > 입출력예외 발생");
}
}
}
class UniChat extends Thread {
Socket socket;
private BufferedReader bufferR;
private BufferedWriter bufferW;
private InputStream is;
private OutputStream os;
UniChat(Socket _socket) {
this.socket = _socket;
}
public void run() {
try {
is = socket.getInputStream();
os = socket.getOutputStream();
while (true) {
bufferR = new BufferedReader(new InputStreamReader(is));
bufferW = new BufferedWriter(new OutputStreamWriter(os));
String message = bufferR.readLine();
System.out.println("수신메시지 : " + message);
message += System.getProperty("line.separator");
bufferW.write(message);
bufferW.flush();
}
} catch (Exception e) {
System.out.println("에러");
}
}
}