본문 바로가기

전체 글

자바의 정석 - 16.5 소켓 프로그래밍 16.5.1 소켓 프로그래밍 소켓을 이용한 통신 프로그래밍 💡 소켓(socket) : 프로세스간의 통신에 사용되는 양쪽 끝단(endpoint) TCP, UDP 16.5.2 TCP/IP 이기종 시스템간의 통신을 위한 표준 프로토콜 집합 TCP, UDP 모두 TCP/IP 프로토콜에 포함되어 있음 4계층 전송계층(transport layer) 16.5.3 TCP -연결방식 연결기반(connection-oriented) 1:1 통신 특징 데이터의 경계를 구분안함(byte-stream) 데이터의 전송순서 보장 데이터의 수신여부 확인(손실시 재전송) 패킷관리 필요성X 느림 관련 클래스 Socket ServerSocket 16.5.4 UDP -연결방식 비연결기반(connectionless-oriented) 1:1, .. 더보기
자바의 정석 - 16.4 URLConnection 16.4.1 URLConnection URL간의 통신연결을 나타내는 클래스의 최상위 클래스 추상클래스 💡 URLConnection의 구현 클래스는 HttpURLConnection과 JarURLConnection이 있다. method import java.net.URL; import java.net.URLConnection; public class NetworkEx3 { public static void main(String args[]) { URL url = null; String address = "http://news.naver.com/main/ranking/read.nhn?mid=etc&sid1=111&rankingType=" + "popular_day&oid=008&aid=0002862578&da.. 더보기
자바의 정석 - 16.3 URL 16.3.1 URL(Uniform Resource Locator) 여러 서버들이 제공하는 자원에 접근할 수 있는 주소 '프로토콜://호스트명:포트번호/경로명/파일명?쿼리스트링#참조' 프로토콜 : 통신규약(http) 호스트명 : 자원을 제공하는 서버이름 포트번호 : 통신에 사용되는 서버의 포트번호(80) 경로명 : 접근하려는 자원이 저장된 서버상의 위치 파일명 : 자원 이름 쿼리(query) : get, post, update, delete, ... 참조(anchor) : 참조 method URL(String spec) URL(String protocol, String host, int port, String file) URL(String protocol, String host, String file) S.. 더보기
자바의 정석 - 16.2 InetAddress 16.2.1 InetAddress Java에서 IP를 다루기 위한 클래스 byte[] getAddress() //IP주소를 byte배열로 반환한다. static InetAddress[] getAllByName(String host) //도메인명(host)을 통해 IP주소를 얻는다. static InetAddess getByAddess(byte[] addr) //byte배열을 통해 IP주소를 얻는다. static InetAddress getByName(String host) //도메인명(host)에 지정된 모든 호스트의 IP주소를 배열에 담아 반환한다. static InetAddress getLocalHost() //지역호스트의 IP주소를 반환한다. String getCanonicalHostName() /.. 더보기
자바의 정석 - 16.1 네트워킹 16.1.1 서버/클라이언트 서버 : 서비스 제공 클라이언트 : 서비스 사용 16.1.2 서버기반 모델, P2P모델 서버기반 모델(server-based model) 안정적인 서비스 제공 공유데이터 관리와 보안 용이 서버구축과 관리 비용이 많이듦 P2P모델(peer-to-peer model) 비용 절감 자원 활용 극대화 자원 관리 어려움 보안 취약 16.1.3 IP주소 IPv4는 4byte의 정수로 구성 구분자 '.' (192.168.10.100) 서브넷 마스크(Subnet Mask)와의 & 연산으로 네트워크 주소 연산 가능 192.168. 10.100 -> IP &)255.255.255. 0 -> 서브넷 마스크 ------------------ 192.168. 10. 0 -> 네트워크 주소 /* 네트워.. 더보기
자바의 정석 - 15.2 바이트기반 스트림 15.2.1 InputStream과 OutputStream InputStream의 메서드 Output의 메서드 더보기
자바의 정석 - 15.1 입출력 및 스트림 15.1.1 입출력 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것 15.1.2 스트림 데이터를 운반하는데 사용되는 연결통로 단방향(I/O를 위해서는 두 개의 스트림 필요) FIFO(First In First Out)구조로 연속적인 데이터를 주고 받음 15.1.3 바이트기반 스트림 💡 위 스트림은 모두 InputStream과 OutputStream의 자손으로 표준화 되어있음 💡 read()와 write(int b)는 추상 메서드이기 때문에 개발자가 정의를 해야한다. 15.1.4 보조스트림 입출력의 기능은 없지만, 스트림의 기능을 향상 시키거나 새로운 기능 추가 FileInputStream fis = new FileInputStream("text.txt"); BufferedInputStr.. 더보기
자바의 정석 - 13.11 fork & join 프레임워크 13.11.1 RecursiveAction과 RecursiveTask RecursiveAction : 반환값이 없는 작업 구현 RecursiveTask : 반환값이 있는 작업 구현 public abstract class RecursiveAction extends ForkJoinTask{ protected abstract void compute(); } public abstract class RecursiveTask extends ForkJoinTask{ V result; protected abstract V compute(); //run() } 💡 쓰레드를 시작할 때 run()을 구현 하지만 start()로 실행하는 것 처럼, compute()로 구현을 하고 invoke로 작업을 시작한다. ForkJoi.. 더보기