티스토리 뷰
> mp4 파일 시스템 기본 구조
Movie (moov) : meta data 시작
Movie Header (mvhd) : movie 정보
Object Descrptor (iods) : IOD
Track (trak) : 트랙 시작
Track Header (tkhd) : 트랙 헤더
Track Refernce (tref) : 트랙 메타 처리시 참조할 트랙
Media (mdia) : 미디어 시작
Media Header (mdhd) : 미디어와 관련한 일반적 내용
Handler (hdlr) : 미디어 타입
Media Information (minf) : 미디어 정보, 샘플 데이터를 얻기 위한 정보
Media Information Header (vmhd) : 미디어 타입
Data Information (dinf) : 데이터 정보, 샘플 데이터의 위치를 얻기 위한 정보
Data Refernce (dref) : 파일내의 존재 여부 및 파일명
Sample Table (stbl) : 샘플 테이블
Time To Sample (stts) : 샘플의 시간 정보
Sample Description (stsd) : 샘플 디코딩을 위한 정보
ES Descriptor(esds) : h.263 es descriptor
AVC Configuration Box(avcC)
MPEG4 Extension Descriptor Box
Sample Size (stsz)
Sample To Chunk (stsc)
Chunk Offset (stco)
Sync Sample (stbl)
Track
.
.
Media Data (mdat)
> 각 Atom 기본 구조(8byte)
Size : 32bit , Atom 의 크기
Type : 32bit , Atom 의 이름
> 파싱 순서
1. 파일 오픈
2. 헤더 읽기
2-1. 4byte 읽어 사이즈 확인( 1인 경우 사이즈 필드가 8byte 임)
2-2. 4byte 읽어 타입 저장
3. Atom 확인
4. Atom 파싱 루틴
5. 2~4 반복
> 각 Atom 별 세부 내용 및 기본 mp4(k3g)관련 데이터
MEDIA DATA : mdat
| Type | 32bits | "mdat" | 
| Data | Variable | 코딩된 Video 및 Audio data와 hint sample | 
Movie Atom : moov
| Size | 32bits | Movie Atom의 size | 
| Type | 32bits | "moov" | 
Movie Header Atom : mvhd
| Size | 32bits | Movie Header Atom의 size | 
| Type | 32bits | "mvhd" | 
| Version | 8bits | Movie Header Atom의 version (1이면 8byte시간, 0이면 4byte시간 사용) | 
| Flags | 24bits | 0 | 
| Creation-time | 64bits 또는 32bits | File이 만들어진 시간 | 
| Modification-time | 64bits 또는 32bits | File이 수정된 시간 | 
| Timescale | 64bits 또는 32bits | File의 timescale | 
| Duration | 64bits 또는 32bits | File의 play 시간 (timescale기준) | 
| Reserved | 32bits | 0x00010000 | 
| Reserved | 16bits | 0x0100 | 
| Reserved | 16bits | 0 | 
| Reserved | 32bits * 2 | 0 | 
| Reserved | 32bits * 9 | 0x00010000, 0, 0, 0, 0x00010000, 0, 0, 0, 0x4000000 | 
| Reserved | 32bits * 6 | 0 | 
| Next-track-ID | 32bits | 사용가능한 다음 track-ID 번호 | 
IOD Atom : iods
| Size | 32bits | IOD Atom의 size | 
| Type | 32bits | "iods" | 
| Version | 8bits | 0 | 
| Flag | 24bits | 0 | 
| ObjectDescriptor | Variable | Initial Object Descriptor | 
ObjectDescriptor
| Tag | 8bits | 0x10 | 
| Length | 32bits | 0x80808019 | 
| ObjectDescriptorID | 10bits | 1 | 
| URL_Flag | 1bit | 0 | 
| IncludeInlineProfile LevelFlag | 1bit | 0 | 
| Reserved | 4bits | 0xF | 
| ODProfile LevelIndication | 8bits | 0xFF | 
| SceneProfile LevelIndication | 8bits | 0xFF | 
| AudioProfile LevelIndication | 8bits | 0x01 | 
| VisualProfile LevelIndication | 8bits | 0x03 | 
| GraphicsProfile LevelIndication | 8bits | 0xFF | 
| Tag | 8bits | 0x0E | 
| Length | 32bits | 0x80808004 | 
| ES_ID | 32bits | OD 혹은 BIFS Track의 ID | 
| Tag | 8bits | 0x0E | 
| Length | 32bits | 0x80808004 | 
| ES_ID | 32bits | OD 혹은 BIFS Track의 ID | 
VIDEO TRACK : track
| Size | 32bits | Track Atom의 size | 
| Type | 32bits | "trak" | 
Track Header Atom : tkhd
| Size | 32bits | Track Header Atom의 size | 
| Type | 32bits | "tkhd" | 
| Version | 8bits | Track Header Atom의 version (1이면 8byte시간, 0이면 4byte시간 사용) | 
| Flags | 24bits | 0x000001 | 
| Creation-time | 64bits 또는 32bits | Track이 만들어진 시간 | 
| Modification-time | 64bits 또는 32bits | Track이 수정된 시간 | 
| Track-ID | 32bits | Track의 ID값 | 
| Reserved | 32bits | 0 | 
| Duration | 32bits | Track의 play 시간 (movie timescale기준) | 
| Reserved | 32bits * 3 | 0 | 
| Reserved | 16bits | 0 | 
| Reserved | 16bits | 0 | 
| Reserved | 32bits * 9 | 0x00010000, 0, 0, 0, 0x00010000, 0, 0, 0, 0x40000000 | 
| Reserved | 32bits | 0x01400000 | 
| Reserved | 32bits | 0x00F00000 | 
Media Atom : mdia
| Size | 32bits | Media Atom의 size | 
| Type | 32bits | "mdia" | 
Media Header Atom : mdhd
| Size | 32bits | Media Header Atom의 size | 
| Type | 32bits | "mdhd" | 
| Version | 8bits | Track Header Atom의 version (1이면 8byte시간, 0이면 4byte시간 사용) | 
| Flags | 24bits | 0 | 
| Creation-time | 64bits 또는 32bits | Media가 만들어진 시간 | 
| Modification-time | 64bits 또는 32bits | Media가 수정된 시간 | 
| Timescale | 32bits | Media의 timescale | 
| Duration | 64bits 또는 32bits | Media의 play 시간 (media timescale기준) | 
| Pad | 1bit | 0 | 
| language | 5bits * 3 | packed ISO-639-2/T language code | 
| reserved | 16bits | 0 | 
Handler Atom : hdlr
| Size | 32bits | Handler Atom의 size | 
| Type | 32bits | "hdlr" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Reserved | 32bits | 0 | 
| Handler-type | 32bits | "vide" | 
| Reserved | 8bits * 12 | 0 | 
| String | var | "vide" | 
Media Information Atom : minf
| Size | 32bits | Media Information Atom의 size | 
| Type | 32bits | "minf" | 
Media Information Header Atom : vmhd
| Size | 32bits | Media Information Header Atom의 size | 
| Type | 32bits | "vmhd" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 1 | 
| Reserved | 64bits | 0 | 
Data Information Atom : dinf
| Size | 32bits | Data Information Atom의 size | 
| Type | 32bits | "dinf" | 
Data Reference Atom : dref
| Size | 32bits | Data Reference Atom의 size | 
| Type | 32bits | "dref" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Entry-count | 32bits | 1 | 
| Size | 32bits | Data Entry Atom의 size | 
| Type | 32bits | "url " | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0x000001 | 
Sample Table Atom : stbl
| Size | 32bits | Sample Table Atom의 size | 
| Type | 32bits | "stbl" | 
Time To Sample Atom : stts
| Size | 32bits | Time To Sample Atom의 size | 
| Type | 32bits | "stts" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Entry-count | 32bits | Sample-count 와 Sample-delta pair의 전체 개수 | 
| Sample-count | 32bits | 같은 delta값을 가지는 연속된 sample개수 | 
| Sample-delta | 32bits | Sample의 duration (media timescale기준) | 
| <계속> | 
 | 
 | 
| Sample-count | 32bits | 같은 delta값을 가지는 연속된 sample개수 | 
| Sample-delta | 32bits | Sample의 duration (media timescale기준) | 
Sample Description Atom : stsd
| Size | 32bits | Sample Description Atom의 size | 
| Type | 32bits | "stsd" | 
| Version | 8bits | 0 | 
| Flag | 24bits | 0 | 
| Entry-count | 32bits | 1 | 
| Size | 32bits | Sample Entry Atom의 size | 
| Type | 32bits | "mp4v" | 
| Reserved | 8bits * 6 | 0 | 
| Data-reference-index | 16bits | 1 | 
| Reserved | 32bits * 4 | 0 | 
| Reserved | 32bits | 0x014000F0 | 
| Reserved | 32bits | 0x00480000 | 
| Reserved | 32bits | 0x00480000 | 
| Reserved | 32bits | 0 | 
| Reserved | 16bits | 1 | 
| Reserved | 8bits * 32 | 0 | 
| Reserved | 16bits | 24 | 
| Reserved | 16bits | -1 | 
| ESDAtom | Variable | ES Descriptor | 
H.264 Sample Description : stsd
| Size | 32bits | Sample Description Box의 size | 
| Type | 32bits | "stsd" | 
| Version | 8bits | 0 | 
| Flag | 24bits | 0 | 
| Entry-count | 32bits | 1 개수 (아래의 회색 영역이 이 개수만큼 반복된다) | 
| Size | 32bits | Sample Entry Box의 size | 
| Type | 32bits | "avc1" | 
| Reserved | 8bits * 6 | 0 | 
| Data-reference-index | 16bits | 1 | 
| Pre_defined | 16bits | 0 | 
| Reserved | 16bits | 0 | 
| Pre_defined | 32bits * 3 | 0 | 
| Width | 16bits | Maximum width, in pixels of the stream | 
| Height | 16bits | Maximum height, in pixels of the stream | 
| Horizresolution | 32bits | 0x00480000 //72 dpi | 
| Vertiresolution | 32bits | 0x00480000 //72dpi | 
| Reserved | 32bits | 0 | 
| Frame_count | 16bits | 1 | 
| compressorname | 8bits * 32 | 0 | 
| Depth | 16bits | 0x0018 | 
| Pre_defined | 16bits | -1 | 
| AVCConfigurationBox | Variable | AVCVideoConfigurationRecord | 
| MPEG4ExtensionDescriptorsBox | Variable | Descriptor //Optional | 
ES Description Atom : esds
| Size | 32bits | ESD Atom의 size | 
| Type | 32bits | "esds" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Tag | 8bits | 0x03 | 
| Length | 8/16/24/32bits(가변) | ES Descriptor의 length | 
| ES_ID | 16bits | 0 | 
| StreamDependence Flag | 1bit | 0 | 
| URL_Flag | 1bit | 0 | 
| OCRstreamFlag | 1bit | 0 | 
| StreamPriority | 5bit | 0 | 
| Tag | 8bits | 0x04 | 
| Length | 8/16/24/32bits(가변) | Decoder Config Descriptor의length | 
| ObjectType Indication | 8bits | 0x20 | 
| StreamType | 6bits | 0x04 | 
| Upstream | 1bits | 0 | 
| Reserved | 1bits | 1 | 
| BufferSizeDB | 24bits | Decoding Buffer의 size | 
| MaxBitrate | 32bits | 최대 bitrate | 
| AvgBitrate | 32bits | 평균 bitrate | 
| Tag | 8bits | 0x05 | 
| Length | 8/16/24/32bits(가변) | Decoder Specific Info의 length | 
| Info data | Variable | VisualObjectSequence, VisualObject 전부와Group_of_VideoObjectPlane과 VideoObjectPlane을 제외한 VideoObjectLayer를 포함 | 
| Tag | 8bits | 0x06 | 
| Length | 8/16/24/32bits(가변) | SL Config Descriptor의 length | 
| Predefined | 8bits | 2 | 
Sample Size Atom : stsz
| Size | 32bits | Sample Size Atom의 size | 
| Type | 32bits | "stsz" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Sample-size | 32bits | 0 | 
| Sample-count | 32bits | 전체 Sample의 개수 | 
| Entry-size | 32bits | 첫번째 Sample의 size | 
| <계속> | 
 | 
 | 
| Entry-size | 32bits | 마지막 Sample의 size | 
Sample To Chunk Atom : stsc
| Size | 32bits | Sample To Chunk Atom의 size | 
| Type | 32bits | "stsc" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Entry-count | 32bits | first-chunk, samples-per-chunk, sample-description-index의 전체 개수 | 
| First-chunk | 32bits | Chunk당 sample개수와 sample description index가 같은 연속된 chunk중 첫번째 chunk의 index | 
| Sample-per-chunk | 32bits | Chunk당 sample의 개수 | 
| Sample-description-index | 32bits | 1 | 
| <계속> | 
 | 
 | 
| First-chunk | 32bits | Chunk당 sample개수와 sample description index가 같은 연속된 chunk중 첫번째 chunk의 index | 
| Sample-per-chunk | 32bits | Chunk당 sample의 개수 | 
| Sample-description-index | 32bits | 1 | 
Chunk Offset Atom : stco
| Size | 32bits | Chunk Offset Atom의 size | 
| Type | 32bits | "stco" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Entry-count | 32bits | 전체 Chunk의 개수 | 
| Chunk-offset | 32bits | File의 처음으로부터 첫번째 chunk까지의offset | 
| <계속> | 
 | 
 | 
| Chunk-offset | 32bits | File의 처음으로부터 마지막 chunk까지의offset | 
Sync Sample Atom : stss
| Size | 32bits | Sync Sample Atom의 size | 
| Type | 32bits | "stss" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Entry-count | 32bits | 전체 Sync Sample의 개수 | 
| Sample Number | 32bits | Sync Sample Number | 
| <계속> | 
 | 
 | 
| Sample Number | 32bits | Sync Sample Number | 
H.264 AVC Configuration Box : avcC
| Size | 32bits | AVC Configuration Box의 size | 
| Type | 32bits | "avcC" | 
| Configuration Version | 8bits | 1 | 
| AVC Profile indication | 8bits | Profile code | 
| Profile compatibility | 8bits | Compatible한 profile을 나타냄 | 
| AVC Level indication | 8bits | Level code | 
| Reserved | 6bits | 0b111111 | 
| Length Size Minus One | 2bits | NALU Length field의 byte 수 - 1 | 
| Reserved | 3bits | 0b111 | 
| Num of Sequence Parameter Sets | 5bits | SPS의 개수 | 
| Sequence Parameter Set Length | 16bits | Parameter set NALU의 길이 | 
| Sequence Parameter Set NAL Unit | Variable | SPS NAL Unit | 
| <계속> | 
 | 
 | 
| Sequence Parameter Set Length | 16bits | Parameter set NALU의 길이 | 
| Sequence Parameter Set NAL Unit | Variable | SPS NAL Unit | 
| Num of Picture Parameter Sets | 8bits | PPS의 개수 | 
| Picture Parameter Set Length | 16bits | Parameter set NALU의 길이 | 
| Picture Parameter Set NAL Unit | Variable | PPS NAL Unit | 
| <계속> | 
 | 
 | 
| Picture Parameter Set Length | 16bits | Parameter set NALU의 길이 | 
| Picture Parameter Set NAL Unit | Variable | PPS NAL Unit | 
-------------------------------------------------------------------------
-------------------------------------------------------------------------
Audio Track : trak
| Size | 32bits | Track Atom의 size | 
| Type | 32bits | "trak" | 
Track Header Atom : tkhd
| Size | 32bits | Track Header Atom의 size | 
| Type | 32bits | "tkhd" | 
| Version | 8bits | Track Header Atom의 version (1이면 8byte시간, 0이면 4byte시간 사용) | 
| Flags | 24bits | 0x000001 | 
| Creation-time | 64bits 또는 32bits | Track이 만들어진 시간 | 
| Modification-time | 64bits 또는 32bits | Track이 수정된 시간 | 
| Track-ID | 32bits | Track의 ID값 | 
| Reserved | 32bits | 0 | 
| Duration | 32bits | Track의 play 시간 (movie timescale기준) | 
| Reserved | 32bits * 3 | 0 | 
| Reserved | 16bits | 0x0100 | 
| Reserved | 16bits | 0 | 
| Reserved | 32bits * 9 | 0x00010000, 0, 0, 0, 0x00010000, 0, 0, 0, 0x40000000 | 
| Reserved | 32bits | 0 | 
| Reserved | 32bits | 0 | 
Media Atom : mdia
| Size | 32bits | Media Atom의 size | 
| Type | 32bits | "mdia" | 
Media Header Atom : mdhd
| Size | 32bits | Media Header Atom의 size | 
| Type | 32bits | "mdhd" | 
| Version | 8bits | Track Header Atom의 version (1이면 8byte시간, 0이면 4byte시간 사용) | 
| Flags | 24bits | 0 | 
| Creation-time | 64bits 또는 32bits | Media가 만들어진 시간 | 
| Modification-time | 64bits 또는 32bits | Media가 수정된 시간 | 
| Timescale | 32bits | Media의 timescale | 
| Duration | 64bits 또는 32bits | Media의 play 시간 (media timescale기준) | 
| Pad | 1bit | 0 | 
| language | 5bits * 3 | packed ISO-639-2/T language code | 
| reserved | 16bits | 0 | 
Handler Atom : hdlr
| Size | 32bits | Handler Atom의 size | 
| Type | 32bits | "hdlr" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Reserved | 32bits | 0 | 
| Handler-type | 32bits | "soun" | 
| Reserved | 8bits * 12 | 0 | 
| String | Var | "soun" | 
Media Information Atom : minf
| Size | 32bits | Media Information Atom의 size | 
| Type | 32bits | "minf" | 
Media Information Header Atom : smhd
| Size | 32bits | Media Information Header Atom의 size | 
| Type | 32bits | "smhd" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Reserved | 32bits | 0 | 
Data Reference Atom :dref
| Size | 32bits | Data Reference Atom의 size | 
| Type | 32bits | "dref" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Entry-count | 32bits | 1 | 
| Size | 32bits | Data Entry Atom의 size | 
| Type | 32bits | "url " | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0x000001 | 
Sample Table Atom : stbl
| Size | 32bits | Sample Table Atom의 size | 
| Type | 32bits | "stbl" | 
Time To Sample Atom : stts
| Size | 32bits | Time To Sample Atom의 size | 
| Type | 32bits | "stts" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Entry-count | 32bits | Sample-count 와 Sample-delta pair의 전체 개수 | 
| Sample-count | 32bits | 같은 delta값을 가지는 연속된 sample개수 | 
| Sample-delta | 32bits | Sample의 duration (media timescale기준) | 
| <계속> | 
 | 
 | 
| Sample-count | 32bits | 같은 delta값을 가지는 연속된 sample개수 | 
| Sample-delta | 32bits | Sample의 duration (media timescale기준) | 
Sample Description Atom : stsd
| Size | 32bits | Sample Description Atom의 size | 
| Type | 32bits | "stsd" | 
| Version | 8bits | 0 | 
| Flag | 24bits | 0 | 
| Entry-count | 32bits | 1 | 
| Size | 32bits | Sample Entry Atom의 size | 
| Type | 32bits | "mp4a" | 
| Reserved | 8bits * 6 | 0 | 
| Data-reference-index | 16bits | 1 | 
| Reserved | 32bits * 2 | 0 | 
| Reserved | 16bits | 2 | 
| Reserved | 16bits | 16 | 
| Reserved | 32bits | 0 | 
| Time-scale | 16bits | Sample의 timescale | 
| Reserved | 16bits | 0 | 
| ESDAtom | Variable | ES Descriptor | 
ESD Atom :esds
| Size | 32bits | ESD Atom의 size | 
| Type | 32bits | "esds" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Tag | 8bits | 0x03 | 
| Length | 8/16/24/32bits(가변) | ES Descriptor의 length | 
| ES_ID | 16bits | 0 | 
| StreamDependence Flag | 1bit | 0 | 
| URL_Flag | 1bit | 0 | 
| OCRstreamFlag | 1bit | 0 | 
| StreamPriority | 5bit | 0 | 
| Tag | 8bits | 0x04 | 
| Length | 8/16/24/32bits(가변) | Decoder Config Descriptor의length | 
| ObjectType Indication | 8bits | AAC : 0x40, MP3 : 0x6B EVRC/QCELP/AMR/G.723의 경우 별도의 SampleEntry로 지원 | 
| StreamType | 6bits | 0x05 | 
| Upstream | 1bits | 0 | 
| Reserved | 1bits | 1 | 
| BufferSizeDB | 24bits | Decoding Buffer의 size | 
| MaxBitrate | 32bits | 최대 bitrate | 
| AvgBitrate | 32bits | 평균 bitrate | 
| Tag | 8bits | 0x05 | 
| Length | 8/16/24/32bits(가변) | Decoder Specific Info의 length | 
| Info data | variable | AudioObjectType, samplingFrequencyIndex, (SamplingFrequency), channelConfiguration, epConfig를 포함 | 
| Tag | 8bits | 0x06 | 
| Length | 8/16/24/32bits(가변) | SL Config Descriptor의 length | 
| Predefined | 8bits | 2 | 
Sample Size Atom : stsz
| Size | 32bits | Sample Size Atom의 size | 
| Type | 32bits | "stsz" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Sample-size | 32bits | 0 | 
| Sample-count | 32bits | 전체 Sample의 개수 | 
| Entry-size | 32bits | 첫번째 Sample의 size | 
| <계속> | 
 | 
 | 
| Entry-size | 32bits | 마지막 Sample의 size | 
Sample To Chunk Atom : stsc
| Size | 32bits | Sample To Chunk Atom의 size | 
| Type | 32bits | "stsc" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Entry-count | 32bits | first-chunk, samples-per-chunk, sample-description-index의 전체 개수 | 
| First-chunk | 32bits | Chunk당 sample개수와 sample description index가 같은 연속된 chunk중 첫번째 chunk의 index | 
| Sample-per-chunk | 32bits | Chunk당 sample의 개수 | 
| Sample-description-index | 32bits | 1 | 
| <계속> | 
 | 
 | 
| First-chunk | 32bits | Chunk당 sample개수와 sample description index가 같은 연속된 chunk중 첫번째 chunk의 index | 
| Sample-per-chunk | 32bits | Chunk당 sample의 개수 | 
| Sample-description-index | 32bits | 1 | 
Chunk Offset Atom : stco
| Size | 32bits | Chunk Offset Atom의 size | 
| Type | 32bits | "stco" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Entry-count | 32bits | 전체 Chunk의 개수 | 
| Chunk-offset | 32bits | File의 처음으로부터 첫번째 chunk까지의offset | 
| <계속> | 
 | 
 | 
| Chunk-offset | 32bits | File의 처음으로부터 마지막 chunk까지의offset | 
| Size | 32bits | Sync Sample Atom의 size | 
| Type | 32bits | "stss" | 
| Version | 8bits | 0 | 
| Flags | 24bits | 0 | 
| Entry-count | 32bits | 전체 Sync Sample의 개수 | 
| Sample Number | 32bits | Sync Sample Number | 
| <계속> | 
 | 
 | 
| Sample Number | 32bits | Sync Sample Number | 
원본 위치 <http://sasperger.tistory.com/103>
'기억하자정보' 카테고리의 다른 글
| 우분투 서버 한글 설정 (0) | 2012.05.15 | 
|---|---|
| MYSQL 백업 및 복원 (0) | 2012.05.14 | 
| 리눅스 백업 스크립트 (0) | 2011.12.01 | 
| 우분투 11.10 에서 JDK 설치 (0) | 2011.11.29 | 
| 소켓이용해서 post형태로 보내기 (0) | 2009.10.24 | 
- 안내
- 궁금한 점을 댓글로 남겨주시면 답변해 드립니다.