EchoServer 란 ?
- 클라이언트가 전송해 준 데이터를 받고 받은 데이터를 그대로 클라이언트에게 전송해주는 서버
package socket2.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class server2 { ServerSocket server = null; int port = 54; Socket socket = null; InputStream inputstream = null; InputStreamReader streamreader = null; BufferedReader buffer = null; OutputStream outputstream = null; OutputStreamWriter streamwriter = null; BufferedWriter bufferwriter = null; PrintWriter pw = null; String receiveMsg = null; //Client의 받은 문자열 저장 /** * * @throws IOException 예외 던진다 * ServerStart() 호출한 다른 메소드에게 예외 던져짐 */ public void ServerStart() throws IOException{ try { server = new ServerSocket(port); while(true){ System.out.println("-- 접속 대기 --"); socket = server.accept(); //클라이언트가 접속 소켓반환 System.out.println(socket.getInetAddress() + "로 부터 연결요청이 들어옴"); receiveData(); ServerStop(); sendStop(); } } catch (Exception e) { e.printStackTrace(); ServerStop(); } } public void ServerStop() throws IOException { inputstream.close(); streamreader.close(); buffer.close(); server.close(); } public void receiveData() throws IOException { try { inputstream = socket.getInputStream(); streamreader = new InputStreamReader(inputstream); buffer = new BufferedReader(streamreader); outputstream = socket.getOutputStream(); streamwriter = new OutputStreamWriter(outputstream); pw = new PrintWriter(new OutputStreamWriter(outputstream)); bufferwriter = new BufferedWriter(streamwriter); while((receiveMsg = buffer.readLine() ) != null) { System.out.println("Client로부터 받은 문자열:" + receiveMsg); pw.println(receiveMsg); //받은메시지 출력 pw.flush(); //버퍼 비움 } } catch (Exception e) { e.printStackTrace(); ServerStop(); } } public void sendStop() throws IOException { bufferwriter.close(); streamwriter.close(); outputstream.close(); pw.close(); } public static void main(String[] args) throws IOException{ server2 serverstart = new server2(); serverstart.ServerStart(); } }
'JAVA' 카테고리의 다른 글
[JMS]Activemq 메시지 생성자(Producer) (0) | 2019.02.18 |
---|---|
[기초 반복문] 피라미드 응용 - 마름모 만들기 (0) | 2019.01.16 |
[기초 반복문] 1부터 10까지의 합계 (0) | 2019.01.13 |
[기초 반복문] 피라미드 만들기 (0) | 2019.01.13 |
[기초 반복문] 구구단 예제 (0) | 2019.01.13 |