Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <windows.h>
- #include <nb30.h>
- int tryb, nazwa;
- NCB blok;
- UCHAR err;
- UCHAR lsn;
- UCHAR callname[16];
- UCHAR name[16];
- UCHAR num;
- UCHAR num_lana = 3;
- UCHAR receive_buffer[512];
- UCHAR send_buffer[512];
- UCHAR RESET( NCB *blok )
- {
- memset( blok, 0, sizeof( NCB ) );
- blok->ncb_command = NCBRESET;
- blok->ncb_lana_num = num_lana;
- //blok->ncb_num = num;
- Netbios( blok );
- return blok->ncb_retcode;
- }
- UCHAR ADDNAME( NCB *blok, UCHAR *name )
- {
- memset( blok, 0, sizeof( NCB ) );
- blok->ncb_command = NCBADDNAME;
- blok->ncb_lana_num = num_lana;
- strncpy( blok->ncb_name, name, strlen( name ) );
- Netbios( blok );
- num = blok->ncb_num;
- return blok->ncb_retcode;
- }
- UCHAR DELNAME( NCB *blok, UCHAR *name )
- {
- memset( blok, 0, sizeof( NCB ) );
- blok->ncb_command = NCBDELNAME;
- blok->ncb_lana_num = num_lana;
- strncpy( blok->ncb_name, name, strlen( name ) );
- Netbios( blok );
- return blok->ncb_retcode;
- }
- UCHAR RECEIVE( NCB *blok )
- {
- memset( blok, 0, sizeof( NCB ) );
- blok->ncb_command = NCBRECV;
- blok->ncb_lsn = lsn;
- blok->ncb_lana_num = num_lana;
- blok->ncb_num = num;
- blok->ncb_post = 0;
- blok->ncb_buffer = receive_buffer;
- blok->ncb_length = sizeof( receive_buffer );
- Netbios( blok );
- printf("Odebrany tekst od %d: %s\n", blok->ncb_lsn, receive_buffer );
- return blok->ncb_retcode;
- }
- UCHAR SEND( NCB *blok, UCHAR *send_buffer )
- {
- memset( blok, 0, sizeof( NCB ) );
- blok->ncb_command = NCBSEND;
- blok->ncb_lsn = lsn;
- blok->ncb_lana_num = num_lana;
- blok->ncb_post = NULL;
- blok->ncb_buffer = send_buffer;
- blok->ncb_length = strlen( send_buffer );
- Netbios( blok );
- return blok->ncb_retcode;
- }
- UCHAR CALL( NCB *blok, UCHAR *callname )
- {
- memset( blok, 0, sizeof( NCB ) );
- blok->ncb_command = NCBCALL;
- blok->ncb_lana_num = num_lana;
- strncpy( blok->ncb_callname, callname, strlen( callname ) );
- blok->ncb_sto = 10;
- blok->ncb_rto = 10;
- strncpy( blok->ncb_name, name, strlen( name ) );
- Netbios( blok );
- lsn = blok->ncb_lsn;
- return blok->ncb_retcode;
- }
- UCHAR LISTEN( NCB *blok, UCHAR *callname )
- {
- memset( blok, 0, sizeof( NCB ) );
- blok->ncb_command = NCBLISTEN;
- blok->ncb_lana_num = num_lana;
- strncpy( blok->ncb_callname, callname, strlen( callname ) );
- strncpy( blok->ncb_name, name, strlen( name ) );
- blok->ncb_sto = 0;
- blok->ncb_rto = 0;
- Netbios( blok );
- lsn = blok->ncb_lsn;
- return blok->ncb_retcode;
- }
- UCHAR HANGUP( NCB *blok )
- {
- memset( blok, 0, sizeof( NCB ) );
- blok->ncb_command = NCBHANGUP;
- blok->ncb_lana_num = num_lana;
- //blok->ncb_post = NULL;
- blok->ncb_lsn = lsn;
- Netbios( blok );
- return blok->ncb_retcode;
- }
- int main( void )
- {
- int wybor;
- err = RESET( &blok );
- if( err != NRC_GOODRET )
- {
- printf( "blad resetowania\n" );
- system( "pause" );
- exit( 1 );
- }
- else printf( "Zresetowano wezel\n" );
- printf( "Podaj nazwe wezla: " );
- scanf( "%s", name );
- err = ADDNAME( &blok, name );
- if( err != NRC_GOODRET )
- {
- printf( "blad dodawania wezla\n" );
- system( "pause" );
- exit( 1 );
- }
- else printf( "dodano\n" );
- printf( "Odbiorca 1 ; Nadawca 2 \n" );
- scanf("%d",&wybor);
- if(wybor==1)
- {
- printf( "Odbiorca\n");
- printf( "Nazwa nadawcy: " );
- scanf( "%s", callname );
- err = LISTEN( &blok, callname );
- if( err != NRC_GOODRET )
- {
- printf( "Blad podlaczenia do sesji\n" );
- system( "pause" );
- exit( 1 );
- }else printf( "Polaczono z: %s\n",callname );
- do{
- memset( receive_buffer, 0, sizeof( receive_buffer ) );
- err = RECEIVE( &blok );
- if( err != NRC_GOODRET )
- {
- printf( "blad odbierania\n" );
- system( "pause" );
- exit( 1 );
- }
- }while(strcmp(receive_buffer,"koniec"));
- err = HANGUP( &blok );
- if( err != NRC_GOODRET )
- {
- printf( "Blad podczas rozlaczania sesji\n" );
- system( "pause" );
- exit( 1 );
- }else printf( "Rozlaczono\n" );
- }
- if(wybor==2)
- {
- printf( "Nadawca\n");
- printf( "Nazwa odbiorcy: " );
- scanf( "%s", callname );
- err = CALL(&blok, callname);
- if( err != NRC_GOODRET )
- {
- printf( "Blad rozpoczynania - %d\n",err );
- system( "pause" );
- exit( 1 );
- } else printf( "Polaczono z: %s\n",callname );
- printf("%d",lsn);
- do{
- printf( "Wiadomosc do wyslania: " );
- scanf( "%s", send_buffer );
- err = SEND( &blok, send_buffer );
- if( err != NRC_GOODRET )
- {
- printf( "Blad wysylania\n" );
- system( "pause" );
- exit( 1 );
- } else printf( "wyslano\n" );
- }while(strcmp(send_buffer,"koniec"));
- }
- system( "pause" );
- err = DELNAME( &blok, name );
- if( err != NRC_GOODRET )
- {
- printf( "blad usuwania wezla\n" );
- system( "pause" );
- exit( 1 );
- }
- else printf( "usunieto\n" );
- system( "pause" );
- }
Advertisement
Add Comment
Please, Sign In to add comment