JAVA

태태개발일지 - JAVA 간단한 network programming

태태코 2025. 12. 13. 11:04
반응형

 

cs지식을 늘리기 위해서 김영한 선생님의 java network programming 강의를 듣는 중이다.

 

 

Network Programming

 

기본적인 로직은 다음과 같다.

 

  1. 소켓서버 포트 지정
  2. 소켓서버 오픈
  3. 클라이언트 소켓서버에 접속
  4. 클라이언트 소켓서버에 데이터 송신
  5. 소켓서버는 클라이언트로 부터 데이터 수신
  6. 소켓서버가 클라이언트에게 데이터 송신
  7. 클라이언트는 소켓서버에서 데이터 수신
  8. 종료

 

Code

Client

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;

public class Client {

    private static  final int PORT = 12345;

    public static void main(String[] args) throws IOException {
        MyLogger.log("client started");
        //client socket 설정
        Socket socket = new Socket("localhost",PORT);
        
        //socket의 송수신 stream 설정
        var input = new DataInputStream(socket.getInputStream());
        var output = new DataOutputStream(socket.getOutputStream());

        MyLogger.log("socket connect: "+socket);
		
        //client socket 송신
        String toSend = "Hello";
        output.writeUTF(toSend);

        MyLogger.log("client sent: "+toSend);

		//client socket 수신
        String recived = input.readUTF();
        MyLogger.log("client recived: "+recived);

        input.close();
        output.close();
        socket.close();





    }


}

 

Socket Server

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    private static final int PORT = 12345;

    public static void main(String[] args) throws IOException {
        MyLogger.log("Server started");
        //socket server open
        ServerSocket serverSocket = new ServerSocket(PORT);
        MyLogger.log("Server started :"+PORT);
		
        //socket server wait
        Socket socket = serverSocket.accept();
        MyLogger.log("Client connected");

        var input = new DataInputStream(socket.getInputStream());
        var output = new DataOutputStream(socket.getOutputStream());
		
        //socket server data recive
        String recived = input.readUTF();
        MyLogger.log("Client received : " + recived);

        String tosend = "Hello World";
        output.writeUTF(tosend);
		
        //socekt server data send
        MyLogger.log("Client sent : " + tosend);
        input.close();
        output.close();
        socket.close();
    }
}
반응형