MƠI TRƯỜNG WINDOWS

Một phần của tài liệu Luận văn tốt nghiệp - Tìm hiểu mô hình điện thoại qua mạng (Trang 35 - 40)

THIẾT KẾ CHƯƠNG TRÌNH

V.1.1 MƠI TRƯỜNG WINDOWS

Hệđiều hành Windows là hệđiều hành đa nhiệm , tức là nhiều chương trình cĩ thể chạy một lúc. Trong mơi trường đa nhiệm, chương trình cĩ thể chia làm nhiều phần nhỏ gọi là các nhánh(thread) chạy đồng thời với nhau. Một chương trình khi chạy bao giờ cũng cĩ một nhánh chính, sau đĩ chương trình cĩ thể tạo ra các nhánh con bằng cách gọi đến các hàm CreateThread. Hệ điều hành sẽ làm nhiệm vụ điều khiển các nhánh này. Windows cho phép đặt các mức ưu tiên cho các nhánh. Nhánh luơn được khởi tạo ở mức ưu tiên bình thường, chương trình cĩ thể thay đổi các mức ưu tiên của các nhánh bằng cách dùng hàm SetThreadPriority tuỳ theo mức yêu cầu. Cĩ các mức ưu tiên sau đây :

Idle Below Normal Normal Above Normal High Readtime

Mức ưu tiên dành cho các ứng dụng chỉ hoạt động khi hệ thống rỗi, mức cuối cùng dành cho các ứng dụng địi hỏi thời gian thực.

IV.1.2 CƠNG CỤ LẬP TRÌNH

Do đặc điểm của chương trình là truyền nhậnh âm thanh trên mạng. Do đĩ lập trình liên qua rất nhiều đến winsock. Hiện nay cĩ rất nhiều ngơn ngữ hỗ trợ cho việc lập trình trên mạng. Qua tìm hiểu em thấy rằng ngơn ngữ Visual C++ 6.0 cĩ những hàm WinSock và những cấu trúc được khai báo trong WINSOCK.H cho cả mơi trường 16 cũng như 32 bit. Những hàm Winsock được hiện thực trong WINSOCK.DLL (hay WSOCK32.DLL ứng với bản 32 bit). Chương trình ứng dụng sẽ được link với WINSOCK.LIB (hay WSOCK32.LIB). Chính vì vậy rất thích hợp cho lập trình các ứng dụng trên mạng.

Các Hàm TCP/IP

Sau đây là ý nghĩa chi tiết các tham số của các hàm TCP/IP. Để sử dụng các hàm này, trong chương trình cần cĩ chỉ thị [6] :

# include < winsock.h >

Hàm accept :

·Cú pháp:

SOCKET PASCAL FAR accept ( SOCKET s,

struct sockaddr FAR * addr, int FAR &addrlen);

·Chức năng:

Xác nhận mối nối của client. Nếu thành cơng, sẽ trả về socket được nối vào, ngược lại trả về giá trị INVALID_SOCKET. Ý nghĩa các tham số :

Tham số Ý nghĩa

S Socket đang chờclient nối vào Addr Bộ đệm nhận về địa chỉclient nối vào Addrlen Chiều dài của địa chỉ trả về trong addr

Hàm bind :

·Cú pháp:

int PASCAL FAR bind ( SOCKET s,

const struct sockaddr FAR * name,

int namelen);

·Chức năng:

Kết buộc socket với port, đối với mỗi nghi thức ứng dụng chuẩn thì sẽ cĩ một hằng số định nghĩa sẵn trong winsock cho port của nghi thức đĩ. Nếu thành cơng trả về 0, ngược lại trả về trị SOCKET_ERROR. Ý nghĩa các tham số :

Tham số Ý nghĩa

S Socket đang chờkết buộc

Name Địa chỉport mà socket sẽ được kết buộc Namelen Chiều dài của tham sốname

Hàm closesocket :

·Cú pháp:

int PASCAL FAR closesocket ( SOCKET s); ·Chức năng:

Sau khi hồn tất quá trình trao đổi dữ liệu, ứng dụng gọi hàm closesocket để đĩng socket đã tạo.

Hàm connect :

LUẬN VĂN TỐT NGHIỆP Trang 36

Đề tài : Xây dng ưứg duụg truyeề thoơg â thanh treê maạg cuụ boộ

int PASCAL FAR connect (

SOCKET s,

const struct sockaddr FAR * name,

int namelen);

·Chức năng:

Gọi hàm connect để nối client vào server. Nếu thành cơng trả về 0, ngược lại trả về giá trị SOCKET_ERROR. Ý nghĩa các tham số :

Tham số Ý nghĩa

s Socket đang chờ được nối với server Name Địa chỉ server sẽ nối

Namelen Chiều dài của tham sốname

Hàm inet_ntoa :

·Cú pháp:

char FAR* PASCAL FAR inet_ntoa (struct in_addr iadddr ); ·Chức năng:

Nhận vào một địa chỉ internet iaddr và đổi thành địa chỉ internet dưới dạng chuỗi.

Hàm listen : ·Cú pháp:

int PASCAL FAR listen (

SOCKET s,

int backlog);

·Chức năng:

Tạo một hàng đợi tối đa backlog client trên port chờđược kết buộc với socket s.

Hàm recv : ·Cú pháp:

int PASCAL FAR revc (

SOCKET s,

char FAR* buf, int len, int flags); ·Chức năng:

Nhận dữ liệu từ socket. Sử dụng cho nghi thức TCP. Ý nghĩa các tham số :

Tham số Ý nghĩa s Socket đểnhận dữliệu buf Bộđệm chứa dữ liệu đọc được len Kích thước bộ đệm flags Cách thực hiện thao tác Hàm recvfrom : ·Cú pháp:

int PASCAL FAR recvfrom(

SOCKET s,

char FAR* buf,

int len,

int flags,

struct sockaddr* from,

int fromlen);

·Chức năng:

Nhận dữ liệu từ socket UDP, xác định địa chỉ của socket đã gửi dữ liệu. Ý nghĩa các tham số :

Tham số Ý nghĩa

s Socket đểnhận dữliệu

buf Bộ đệm chứa dữliệu đọc được len Kích thước bộ đệm

flags Cách thực hiện thao tác, nhận giá trị MSG_PEEK hay MSG_OOB

from Địa chỉ nơi dữ liệu được gửi đi fromlen Chiều dài của fromlen

Hàm send :

·Cú pháp:

int PASCAL FAR send (

SOCKET s,

const char FAR* buf,

int len,

int flags);

·Chức năng:

Gửi dữ liệu qua socket. Sử dụng cho nghi thức TCP .Ý nghĩa các tham số:

Tham số Ý nghĩa

S Socket đểgửi dữliệu Buf Bộ đệm chứa dữliệu sẽtruyền Len Kích thước bộ đệm Flags Cach thực hiện thao tác

Hàm sendto : ·Cú pháp:

int PASCAL FAR sendto (

SOCKET s,

const char FAR* buf,

int len,

int flags,

const struct sockaddr *to, int tolen);

·Chức năng:

Gửi dữ liệu đến một socket xác định. Sử dụng cho nghi thức UDP.Ý nghĩa các tham số:

LUẬN VĂN TỐT NGHIỆP Trang 38

Đề tài : Xây dng ưứg duụg truyeề thoơg â thanh treê maạg cuụ boộ

Tham số Ý nghĩa s Socket đểgửi dữliệu buf Bộ đệm chứa dữliệu sẽtruyền len Kích thước bộ đệm Flags Cách thực hiện thao tác to Địa chỉmáy phải gửi dữliệu Tolen Chiều dài của tolen

Hàm setsockopt :

·Cú pháp:

int PASCAL FAR setsockopt (

SOCKET s,

int level,

int optname);

const char FAR* optval,

int optlen);

·Chức năng:

Đặt các thuộc tính tùy chọn cho socket.Ýù nghĩa các tham số như sau:

Tham số Ý nghĩa

s Socket cần được đặt thuộc tính

level Mức định nghĩa thuộc tính, chỉ cĩ thể nhận giá trị SOL_SOCKET hay IPPROTO_TCP

optname Tên option muốn đặt, một số giá trị thơng dụng : -SO_BROADCAST: Cho phép truyền thơng broadcast trên socket.

-SO_LINGER : Chờ trước khi đĩng socket nếu cịn dữliệu chưa gửi.

Optval Bộđệm chứa giá trị sẽ gán cho option, cĩ thể là BOOL hay struct, int tùy thuộc vào optname cụ thể

Optlen Chiều dài của optlen

Hàm socket :

·Cú pháp:

SOCKET PASCAL FAR socket (

int addr,

int type,

int protocol);

·Chức năng:

Tạo một socket và trả về handle của socket nếu thành cơng, trường hợp cĩ lỗi trả về giá trị INVALID_SOCKET.Ý nghĩa các tham số như sau:

Tham số Ý nghĩa

addr Đặc tả dạng lưu trữđịa chỉ, hiện nay chỉ cĩ thể nhận giá trị AF_INET cho Internet

• SOCKET_STREAM: ứng với TCP

• SOCKET_DGRAM : ứng với UDP

Protocol Qui định nghi thức đặc biệt được dùng với socket, nhận giá trị 0 nếu khơng muốn sửdụng một nghi thức đặc biệt

Hàm WSAStartup :

·Cú pháp:

int PASCAL FAR WSAStartup(

WORD version,

LPWSADATA lpWSAData);

·Chức năng:

Đây là hàm phải gọi đầu tiên khi sử dụng socket. Hàm cĩ nhiệm vụ khởi tạo thư viện liên kết động Windows socket DLL.Ý nghĩa các tham số như sau :

Tham số Ý nghĩa

version Version cao nhất của Windows sockets API cĩ thểsửdụng

LpWSAData Chỉ đến cấu trúc WSADATA nhận về chi tiết thực hiện của Windows Socket

Hàm WSACleanup : ·Cú pháp:

int PASCAL FAR WSACleanup(void); ·Chức năng:

Khi chấm dứt sử dụng các hàm socket phải gọi WSACleanup để đĩng thư viện liên kết động Windows Socket DLL.

Một phần của tài liệu Luận văn tốt nghiệp - Tìm hiểu mô hình điện thoại qua mạng (Trang 35 - 40)

Tải bản đầy đủ (PDF)

(60 trang)