Java Socket 통신 20080428 이개혁 정대준
Server의 클래스 구조
네트워크 통신 구조 C JAVA socket ServerSocket bind listen accept Socket Read/Write Read/Write close close
네트워크 클래스 구조 C의 socket Int socket(int domain, int type, int protocol) Java의 ServerSocket ServerSocket serverSocket = new ServerSocket(port);
네트워크 클래스 구조 C의 bind Int bind(int sockfd, struct sockaddr *myaddr, int addrlen); Java 주소 할당의 업무를 ServerSocket이 알아서 할당하고 Client와의 통신 포트 만을 입력 한다.
네트워크 클래스 구조 C의 listen Int listen(int s, int backlog) Java ServerSocket을 초기화 이후 부터 listen상태에 들어 간다.
네트워크 클래스 구조 C의 accept Int listen(int s, struct sockaddr *addr, int addrlen) Java의 accept Socket socket = serverSocket.accept();
네트워크 클래스 구조 C의 read/write read str_len=read(sock, message, sizeof(message) – 1); write write(clnk_sock, message, sizeof(message));
네트워크 클래스 구조 Java의 read/write read InputStream in = socket.getInputStream(); DataInputStream din = new DataInputStream(in); System.out.println(din.readUTF());
네트워크 클래스 구조 Java의 read/write Write Scanner scanner = new Scanner(System.in); OutputStream out = socket.getoutputStream(); DataOutputStream dout = new DataOutputStream(out); //1>dout.writeUTF(“Hello World”); //2>dout.writeUTF(scanner.readLine());
네트워크 클래스 구조 C의 close close(clnk_sock); Java의 close dout.close(); socket.close();
Client의 클래스 구조
네트워크 통신 구조 C JAVA socket Socket connect Read/Write Read/Write close
네트워크 클래스 구조 C의 Client Socket int socket(PF_INET, SOCK_STREAM, 0); Java의 Client Socket Socket socket = null;
네트워크 클래스 구조 C의 Connect int connet(int sockfd, struct sockaddr *serv_addr, int addrlen); Java socket = new Socket(serverIp, port); 객채를 생성하는 시점이 connect다.
네트워크 클래스 구조 C의 Client read/write Server와 동일하다 Java의 Client read/write
네트워크 클래스 구조 C의 Client Close Server와 동일하다 Java의 Client Close
통신 구조
C의 통신 구조 Server Client socket Socket bind connect 1 listen 2 accept Read/Write 4 Read/Write close close
Java의 통신 구조 Server Client ServerSocket Socket 1 2 Socket Read/Write close close