본문 바로가기

전체 글

자바의 정석 - 16.7 UDP 소켓 프로그래밍 16.7.1 UDP 소켓 프로그래밍 DatagramSocket을 사용하여 데이터를 DatagramPacket에 담아 전송 DatagramPacket는 헤더와 데이터로 구성. 헤더에는 IP 및 Port 저장 16.7.2 Server와 Client 연결 예제 Server public class UdpServer { public void start() throws IOException { // 포트 7777번을 사용하는 소켓을 생성한다. DatagramSocket socket = new DatagramSocket(7777); DatagramPacket inPacket, outPacket; byte[] inMsg = new byte[10]; byte[] outMsg; while(true) { // 데이터를 수신.. 더보기
자바의 정석 - 16.6 TCP 소켓 프로그래밍 16.6.1 TCP 소켓 프로그래밍 순서 서버 프로그램에서 서버소켓을 사용하여 클라이언트의 연결요청 처리 준비 클라이언트 프로그램에서 IP와 포트 정보로 소켓을 생성하여 서버에 연결 요청 서버소켓이 연결요청을 받으면 새로운 소켓을 생성하여 클라이언트 소켓과 연결 서버소켓과 관계없이 서버의 새로운 소켓과 클라이언트 소켓간의 1:1 통신 소켓(socket) - 프로토콜 + IP + 포트. - InputStream과 OutputStream 보유 💡 여러 개의 소켓이 하나의 포트 공유 가능. 서버 소켓은 포트 독점 16.6.2 Server와 Client 연결 예제 Server public class TcpIpServer { public static void main(String args[]) { ServerSo.. 더보기
자바의 정석 - 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의 메서드 더보기