A鵜nh 8鵜a ch雨 cho socket

Một phần của tài liệu ứng dụng bắt gói tin cho mạng quản trị (Trang 45)

Khi socket 8ã 8逢嬰c v衣o ra, d衣n ch雨 c亥n ch雨 8鵜nh 8鵜a ch雨 và tên cho socket. M瓜t socket c亥n ph違i có 8鵜a ch雨 và tên 8吋 các trình khách có th吋

tham chi院u 8院n. Tùy m厩i vùng giao th泳c mà cách 8ánh 8鵜a ch雨 có th吋

khác nhau.

Ví d映khi d衣n dùng vùng giao th泳c AF_UNIX d詠a trên h羽th嘘ng t壱p tin, 8鵜a ch雨 socket 8逢嬰c 8鵜nh ngh a trong c医u trúc sockaddr_un e栄a file include sys/un.h nh逢 sau:

struct sockaddr_un{

sa_family_t sun_family; /* AF_UNIX */

char sun_path []; /* 8⇔ぜng ddn */

Ch逢挨ng 4: L壱p trình socket

Trong Linux sa_family_t 8逢嬰c 8鵜nh ngh a là ki吋u short. sun_path là

8逢運ng d磯n8吋 t衣o t壱p tin socket.

Vùng AF_UNIX 8逢嬰c s穎 d映ng nhi隠u trong các 泳ng f映ng e映c b瓜

trên o丑t máy vì nó ph映 thu瓜c vào 8逢運ng d磯n t壱p tin tuy羽t 8嘘i e栄a h羽 8i隠u hành.

Th詠c t院 b衣nu胤 dùng AF_INET v噂i c医u trúc 8鵜a ch雨 8逢嬰c 8鵜nh ngh a trong sockadd_ine栄a file include netinet/in.h nh逢 sau:

struct sockadd_in{

short in sin_family; /* AF_INET */

unsigned short int sin_port; /* sぐcごng */

struct in_addr sin_addr; /* Aおa chえIP */

};

C医u trúc in_addr môv違 8鵜a ch雨 IP 8逢嬰c 8鵜nh ngh a nh逢 sau: struct in_addr{

unsigned long int s_addr; };

Nh逢 d衣n th医y 8鵜a ch雨 IP là m瓜t s嘘long (4 bytes hay 32 bits). Aây

e ng chính là c医u trúc 8鵜a ch雨 cho m瓜t ch逢挨ng trình giao ti院p v噂i nhau quao衣ng Internet.

Trên quan 8i吋m e栄a l壱p trình 泳ngf映ng, cho dù socket có 8鵜nh 8鵜a ch雨 theo vùng nào 8i ch<ng n英a m瓜t khi 8ã m荏 8逢嬰c socket, d衣n ch雨 c亥n xem socket nh逢 m瓜t t壱p tin và th詠c hi羽n thao tác read/write trên 8ó(

Ch逢挨ng 4: L壱p trình socket

Một phần của tài liệu ứng dụng bắt gói tin cho mạng quản trị (Trang 45)