CÔNG CỤ LẬP TRÌNH

Một phần của tài liệu Thiết kế chương trình truyền tiếng nói qua mạng LAN thông qua sự trợgiúp của công cụ SDK (Trang 50 - 57)

TÌM HIỂU HỖ TRỢ CỦA WINDOWS SDK TRONG XỬ LÝ VÀ TRUYỀN NHẬN ÂM THANH

V.1 MÔI TRƯỜNG VÀ CÔNG CỤ LẬP TRÌNH .1 MÔI TRƯỜNG WINDOWS

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 hoà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 :

ãCỳ phỏp:

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ố:

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

type Qui định lựa chọn TCP hay UDP

 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 Thiết kế chương trình truyền tiếng nói qua mạng LAN thông qua sự trợgiúp của công cụ SDK (Trang 50 - 57)

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

(82 trang)
w