Общий вид программы такой:
void main() { LANA_ENUM lenum; if (ResetNetBios(LANA_NUM)!=NRC_GOODRET) printf("Error Reset \n"); else printf("God Reset\n"); if (AddNetBiosName(LANA_NUM,SERVER_NAME)!=NRC_GOODRET) printf("Error Add \n"); else printf("God Add Name\n"); Proccess(); }
Инициализируем NetBios. Добавляем имя и запускаем процедуру Proccess:
void Proccess() { NCB ncb; UCHAR ucRetCode; ClearStruct(&ncb); FillMemory(ncb.ncb_name, sizeof(ncb.ncb_name), ' '); CopyMemory(ncb.ncb_name, SERVER_NAME, strlen(SERVER_NAME)); FillMemory(ncb.ncb_callname, sizeof(ncb.ncb_callname), ' '); CopyMemory(ncb.ncb_callname, ALL_CLIENTS, strlen(ALL_CLIENTS)); ncb.ncb_lana_num = LANA_NUM; ncb.ncb_command = NCBLISTEN; ucRetCode = Netbios(&ncb); if (ucRetCode != NRC_GOODRET) printf("Error Listen\n"); else printf("Connect !!!!!\n"); }
Посмотрите она ужастно простая. ncb.ncb_name - имя сервера; в ncb.ncb_callname - имя клиента. Имя клиента у меня такое:
#define ALL_CLIENTS "*"
Это значит, что могут подсоединяться все. NCBLISTEN будет ждать обращения. И после этого по результату работы NetBios выдаст сообщение.
Загрузите и скомпилируйте проект. Запустите сервер. Будет просто окно, которое будет ждать. А потом запустите клиента, сервер среагирует и завершит работу !!!!. Примерно должно быть так: