C và C + + Lập trình Tài nguyên

Chia sẻ / Bookmark
Tìm kiếm Tuỳ chỉnh

Datagram chung

Được đăng vào ngày 20 tháng 9 năm 2008

Điều này tiêu đề chứa các nguyên mẫu chức năng cho một bộ các chức năng thực hiện một số chức năng phổ biến nhất NetBIOS như liệt kê Lanas, thêm tên, loại bỏ tên, vv Các chức năng được thực hiện Nbcommon.c

 /************************************************* ****** * MYCPLUS Mẫu Mã - http://www.mycplus.com * * * * Mã này được làm sẵn như là một dịch vụ cho khách truy cập * * của chúng tôi và được cung cấp đúng cho * * Mục đích của các minh hoạ.  * * * * Xin vui lòng trực tiếp tất cả các yêu cầu để Saqib tại * mycplus.com *********************************** ********************/ / / nbcommon.h / / # include <windows.h> # bao gồm Recv <nb30.h> int (int Lana int lsn, , char * buffer, DWORD * len); int Gửi (int Lana, int lsn, dữ liệu * char, DWORD len); int AddName (int Lana, tên * char, int * num); int DelName (Lana int, char * tên); int AddGroupName (int Lana, tên * char, int * num); int ResetAll (LANA_ENUM * lenum, UCHAR ucMaxSession, UCHAR ucMaxName, BOOL bFirstName); int LanaEnum (LANA_ENUM * lenum); int gác máy (int Lana, int lsn); int Cancel (PNCB pncb); FormatNetbiosName int (nbname * char, char * outname); /*************************** ***********************/ / / / / Module Name: / nbcommon.c / / mô tả /: / / file này chứa các cơ quan chức năng cho một bộ / / NetBIOS chức năng thông thường.  Xem các mô tả cho / mỗi chức năng / ngày một trong những gì từng làm.  Các chức năng này / / được sử dụng bởi các chương trình NetBIOS mẫu khác vì thế này / / file cần phải được biên soạn để mã đối tượng và liên kết / / với các chương trình thực thi khác:. / / / / Biên dịch / / cl / nbcommon.c c / / / / Command Line Tùy chọn: / / NONE - Soạn thảo để mã đối tượng / / # include <windows.h> # bao gồm <stdio.h> # bao gồm <stdlib.h> # include "nbcommon.h" / / / / liệt kê tất cả LANA số / / int LanaEnum (LANA_ENUM * lenum) (NCB NCB; ZeroMemory (& NCB, sizeof (NCB)); ncb.ncb_command = NCBENUM; ncb.ncb_buffer = (PUCHAR) lenum; ncb.ncb_length = sizeof (LANA_ENUM), nếu (NetBIOS (& NCB)! = NRC_GOODRET) (printf ("Lỗi: NetBIOS: NCBENUM:% d \ n", ncb.ncb_retcode); trả lại ncb.ncb_retcode;) trở về NRC_GOODRET;) / / / / Thiết lập lại mỗi LANA được liệt kê trong LANA_ENUM cấu trúc.  Ngoài ra, thiết lập / / môi trường NetBIOS (buổi tối, bảng tên kích thước tối đa), / / và sử dụng tên NetBIOS đầu tiên. / / Int ResetAll (LANA_ENUM * lenum, UCHAR ucMaxSession, UCHAR ucMaxName, BOOL bFirstName) (NCB NCB; int i; ZeroMemory (& NCB, sizeof (NCB)); ncb.ncb_command = NCBRESET; ncb.ncb_callname [0] = ucMaxSession; ncb.ncb_callname [2] = ucMaxName; ncb.ncb_callname [3] = (UCHAR) bFirstName; cho ( i = 0; i <lenum-> chiều dài; i + +) (ncb.ncb_lana_num = lenum-> Lana [i]; if (NetBIOS (& NCB)! = NRC_GOODRET) (printf ("Lỗi: NetBIOS: NCBRESET [% d]: % d \ n ", ncb.ncb_lana_num, ncb.ncb_retcode); trả lại ncb.ncb_retcode;)) NRC_GOODRET trở lại;) / / / / Thêm tên đặt cho số LANA nhất định.  Trả lại tên / / số cho tên đăng ký (. / / Int int AddName Lana, tên * char, int * num) (NCB NCB; ZeroMemory (& NCB, sizeof (NCB)); ncb.ncb_command = NCBADDNAME; ncb.ncb_lana_num = Lana; memset (ncb.ncb_name, '', NCBNAMSZ); strncpy (ncb.ncb_name, tên, strlen (tên)), nếu (NetBIOS (& NCB)! = NRC_GOODRET) (printf ("Lỗi: NetBIOS: NCBADDNAME [Lana =% d; tên =% s]:% d \ n ", Lana, tên, ncb.ncb_retcode); trả lại ncb.ncb_retcode;) * num = ncb.ncb_num; NRC_GOODRET trở lại;) / / / / Thêm NetBIOS cho Tên nhóm đến LANA cho / / số.  Trả lại tên cho số tên nhất (. / / Int int AddGroupName Lana, tên * char, int * num) (NCB NCB; ZeroMemory (& NCB, sizeof (NCB)); ncb.ncb_command = NCBADDGRNAME; ncb.ncb_lana_num = Lana ; memset (ncb.ncb_name, '', NCBNAMSZ); strncpy (ncb.ncb_name, tên, strlen (tên)), nếu (NetBIOS (& NCB)! = NRC_GOODRET) (printf ("Lỗi: NetBIOS: NCBADDGRNAME [Lana =% d; tên =% s]:% d \ n ", Lana, tên, ncb.ncb_retcode); trả lại ncb.ncb_retcode;) * num = ncb.ncb_num; NRC_GOODRET trở lại;) / / / / Xóa tên cho NetBIOS từ bảng tên có liên quan / / với số LANA / / int DelName (Lana int, char * name) (NCB NCB; ZeroMemory (& NCB, sizeof (NCB)); ncb.ncb_command = NCBDELNAME; ncb.ncb_lana_num = Lana; memset ( ncb.ncb_name, '', NCBNAMSZ); strncpy (ncb.ncb_name, tên, strlen (tên)), nếu (NetBIOS (& NCB)! = NRC_GOODRET) (printf ("Lỗi: NetBIOS: NCBADDNAME [Lana =% d; tên =]% s:% d \ n ", Lana, tên, ncb.ncb_retcode); trả lại ncb.ncb_retcode;) NRC_GOODRET trở lại;) / / / / Gửi len byte từ bộ đệm dữ liệu trên các phiên được (lsn) / / và Lana số (. / / int int Gửi Lana, int lsn, dữ liệu * char, DWORD len) (NCB NCB; int retcode; ZeroMemory (& NCB, sizeof (NCB)); ncb.ncb_command = NCBSEND; ncb.ncb_buffer = ( PUCHAR) dữ liệu; ncb.ncb_length = len; ncb.ncb_lana_num = Lana; ncb.ncb_lsn = lsn; retcode = NetBIOS (& NCB); trả lại retcode;) / / / / Nhận lên đến len byte vào bộ đệm dữ liệu trên các phiên cho / / lsn () và số Lana;. / / int Recv (int Lana, lsn int, char * buffer, DWORD * len) (NCB NCB ZeroMemory (& NCB, sizeof (NCB)); ncb.ncb_command = NCBRECV; NCB. ncb_buffer = (PUCHAR) đệm; ncb.ncb_length = * len; ncb.ncb_lana_num = Lana; ncb.ncb_lsn = lsn, nếu (NetBIOS (& NCB)! = NRC_GOODRET) (* len = -1; trở lại ncb.ncb_retcode;) * len = ncb.ncb_length; NRC_GOODRET trở lại;) / / / / Ngắt kết nối các phiên được trên số Lana cho / / int gác máy (int Lana, int lsn) (NCB NCB; int retcode; ZeroMemory (& NCB, sizeof (NCB)) ; ncb.ncb_command = NCBHANGUP; ncb.ncb_lsn = lsn; ncb.ncb_lana_num = Lana; retcode = NetBIOS (& NCB); retcode trở lại;) / / / / Hủy bỏ các lệnh không đồng bộ được ký hiệu là trong NCB / tham số cấu trúc /. / / int Cancel (PNCB pncb) (NCB NCB; ZeroMemory (& NCB, sizeof (NCB)); ncb.ncb_command = NCBCANCEL; ncb.ncb_buffer = (PUCHAR) pncb; ncb.ncb_lana_num =-> ncb_lana_num pncb, nếu (NetBIOS (& NCB) NRC_GOODRET! =) (printf ("Lỗi: NetBIOS: NCBCANCEL:% d \ n", ncb.ncb_retcode); trả lại ncb.ncb_retcode;) NRC_GOODRET trở lại;) / / / / Định dạng của NetBIOS được đặt tên để nó có thể in được.  Bất kỳ / / chưa in ra các ký tự được thay thế bằng một khoảng thời gian.  Các outname / / bộ đệm là một chuỗi trả lại, mà được giả định là ít nhất / / NCBNAMSZ + 1 ký tự. / / Int FormatNetbiosName (nbname * char, outname * char) (int i; strncpy (outname, nbname, NCBNAMSZ ); outname [NCBNAMSZ - 1] = '\ 0'; cho (i = 0; i <NCBNAMSZ - 1; i + +) (/ / Nếu ký tự không in được thay thế bằng một '.' / / if (! ((outname [i]> = 32) & & (outname [i] <= 126))) outname [i] = ';.') trả lại NRC_GOODRET;) 

Tags: ,

Cũng giống như những gì bạn xem?

Trở thành một trong những chính quy bằng cách đăng ký! Bạn sẽ là người đầu tiên biết khi chúng tôi thêm nhiều bài viết chỉ tuyệt vời như thế này. Tham gia tăng hoặc Nguồn cấp dữ liệu RSS hoặc Email cập nhật ngày hôm nay!

Có Không có ý kiến cho bài đăng này. Bạn có thể làm theo bất kỳ phản ứng với cụm từ này qua RSS 2.0 feed . Bạn có thể bỏ qua để kết thúc và để lại một phản ứng hoặc Trackback từ trang web của riêng bạn.


Để lại một trả lời

Bạn phải đăng nhập để gửi bình luận.