본문 바로가기
Java/Networking

Java Networking TcpServer 예시

by S.T.Lee 2022. 11. 13.
package lec11.Networking.ex01;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

//서버와 클라이언트 만들기
public class TcpServerTest {
	public static void main(String[] args) {
		
		try {
			ServerSocket serverSocket = new ServerSocket(80);
			System.out.println("서버를 시작합니다.");
			System.out.println("==================");
			
			while (true) {
				Socket socket = serverSocket.accept();
				
				synchronized (socket) {
					InetAddress inetAddress = socket.getInetAddress();
					System.out.println("클라이언트가 접속했습니다.");
					System.out.println("getHostAddress :::" + inetAddress.getHostAddress());
				}
				
				InputStream is = socket.getInputStream();
				OutputStream os  = socket.getOutputStream();
				
				new Thread() {
					public void run() {
						BufferedReader br = new BufferedReader(new InputStreamReader(is));
						try {
							while (true) {
								String readline = br.readLine();
								if(readline == null) {
									break;
								}
							}
						} catch(Exception e) {
							e.printStackTrace();
							try {
								socket.close();
							} catch (Exception e1) {
								e1.printStackTrace();
							}
						}
					}
				}.start();
				
				new Thread() {
					public void run() {
						BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
						try {
							int count = 0;
							while (true) {
								Thread.sleep(1000);
								bw.write("서버에서 전송하는 데이터 [ "+count+"]\r\n");
								count++;
								bw.flush();
							}
						} catch (Exception e) {
							e.printStackTrace();
							try {
								
							} catch (Exception e1) {
								e1.printStackTrace();
							}
						}
					}
				};
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

'Java > Networking' 카테고리의 다른 글

Java Networking TcpClient 예시  (0) 2022.11.13
Java Networking 예시 2  (0) 2022.11.13
Java Networking 예시 1  (0) 2022.11.13