mport java.awt.HeadlessException;
import java.io.DataInputStream;
import java.io.DataOutput;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.JOptionPane;
public class Server {
private ServerSocket serv;
public Server(){
try {
serv = new ServerSocket(30000);
System.out.println("서버를 가동했습니다.");
Socket sock = serv.accept();
DataOutputStream dos = new DataOutputStream(sock.getOutputStream());
DataInputStream dis = new DataInputStream(sock.getInputStream());
Thread th = new Thread(){
public void run(){
while(true){
try {
dos.writeUTF(JOptionPane.showInputDialog("서버가 하고싶은말:"));
dos.flush();
} catch (HeadlessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};th.start();
while(true){
System.out.println(dis.readUTF());//서버에서 받은 거 출력
}
} catch (IOException e){
e.printStackTrace();
}
}
public static void main(String[] args) {
new Server();
}
}
제가 작성한 코드는 아니고 예제 보고있는건데
궁금한게 저기에 왜 쓰레드로 불러줘야 하죠??
저거 없어도 정상적이지 않나요???????
그러니깐 클라이언트가 접속할때 Socket sock = serv.accept();
여기서 소켓을 생성해서 계속 코드가 이어지는걸로 알고있는데
왜 굳이 쓰레드로 처리한거에요??
제가 이해를 잘못했나
거에요->거예요