Haifisch7734

hehe

Mar 23rd, 2014
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.34 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <windows.h>
  4. #include <nb30.h>
  5.  
  6. int tryb, nazwa;
  7.  
  8. NCB blok;
  9. UCHAR err;
  10. UCHAR lsn;
  11. UCHAR callname[16];
  12. UCHAR name[16];
  13. UCHAR num;
  14. UCHAR num_lana = 3;
  15. UCHAR receive_buffer[512];
  16. UCHAR send_buffer[512];
  17.  
  18.  
  19. UCHAR RESET( NCB *blok )
  20. {
  21. memset( blok, 0, sizeof( NCB ) );
  22. blok->ncb_command = NCBRESET;
  23. blok->ncb_lana_num = num_lana;
  24. //blok->ncb_num = num;
  25. Netbios( blok );
  26.  
  27. return blok->ncb_retcode;
  28. }
  29.  
  30. UCHAR ADDNAME( NCB *blok, UCHAR *name )
  31. {
  32. memset( blok, 0, sizeof( NCB ) );
  33. blok->ncb_command = NCBADDNAME;
  34. blok->ncb_lana_num = num_lana;
  35. strncpy( blok->ncb_name, name, strlen( name ) );
  36. Netbios( blok );
  37.  
  38. num = blok->ncb_num;
  39. return blok->ncb_retcode;
  40. }
  41.  
  42. UCHAR DELNAME( NCB *blok, UCHAR *name )
  43. {
  44. memset( blok, 0, sizeof( NCB ) );
  45. blok->ncb_command = NCBDELNAME;
  46. blok->ncb_lana_num = num_lana;
  47. strncpy( blok->ncb_name, name, strlen( name ) );
  48. Netbios( blok );
  49.  
  50. return blok->ncb_retcode;
  51. }
  52.  
  53. UCHAR RECEIVE( NCB *blok )
  54. {
  55. memset( blok, 0, sizeof( NCB ) );
  56. blok->ncb_command = NCBRECV;
  57. blok->ncb_lsn = lsn;
  58. blok->ncb_lana_num = num_lana;
  59. blok->ncb_num = num;
  60. blok->ncb_post = 0;
  61. blok->ncb_buffer = receive_buffer;
  62. blok->ncb_length = sizeof( receive_buffer );
  63. Netbios( blok );
  64.  
  65. printf("Odebrany tekst od %d: %s\n", blok->ncb_lsn, receive_buffer );
  66.  
  67. return blok->ncb_retcode;
  68. }
  69.  
  70. UCHAR SEND( NCB *blok, UCHAR *send_buffer )
  71. {
  72. memset( blok, 0, sizeof( NCB ) );
  73. blok->ncb_command = NCBSEND;
  74. blok->ncb_lsn = lsn;
  75. blok->ncb_lana_num = num_lana;
  76. blok->ncb_post = NULL;
  77. blok->ncb_buffer = send_buffer;
  78. blok->ncb_length = strlen( send_buffer );
  79. Netbios( blok );
  80.  
  81. return blok->ncb_retcode;
  82. }
  83.  
  84. UCHAR CALL( NCB *blok, UCHAR *callname )
  85. {
  86. memset( blok, 0, sizeof( NCB ) );
  87. blok->ncb_command = NCBCALL;
  88. blok->ncb_lana_num = num_lana;
  89. strncpy( blok->ncb_callname, callname, strlen( callname ) );
  90. blok->ncb_sto = 10;
  91. blok->ncb_rto = 10;
  92. strncpy( blok->ncb_name, name, strlen( name ) );
  93. Netbios( blok );
  94. lsn = blok->ncb_lsn;
  95. return blok->ncb_retcode;
  96. }
  97.  
  98.  
  99. UCHAR LISTEN( NCB *blok, UCHAR *callname )
  100. {
  101. memset( blok, 0, sizeof( NCB ) );
  102. blok->ncb_command = NCBLISTEN;
  103. blok->ncb_lana_num = num_lana;
  104. strncpy( blok->ncb_callname, callname, strlen( callname ) );
  105. strncpy( blok->ncb_name, name, strlen( name ) );
  106. blok->ncb_sto = 0;
  107. blok->ncb_rto = 0;
  108. Netbios( blok );
  109. lsn = blok->ncb_lsn;
  110. return blok->ncb_retcode;
  111. }
  112.  
  113. UCHAR HANGUP( NCB *blok )
  114. {
  115. memset( blok, 0, sizeof( NCB ) );
  116. blok->ncb_command = NCBHANGUP;
  117. blok->ncb_lana_num = num_lana;
  118. //blok->ncb_post = NULL;
  119. blok->ncb_lsn = lsn;
  120. Netbios( blok );
  121. return blok->ncb_retcode;
  122. }
  123.  
  124. int main( void )
  125. {
  126. int wybor;
  127. err = RESET( &blok );
  128. if( err != NRC_GOODRET )
  129. {
  130. printf( "blad resetowania\n" );
  131. system( "pause" );
  132. exit( 1 );
  133. }
  134. else printf( "Zresetowano wezel\n" );
  135.  
  136. printf( "Podaj nazwe wezla: " );
  137. scanf( "%s", name );
  138. err = ADDNAME( &blok, name );
  139.  
  140. if( err != NRC_GOODRET )
  141. {
  142. printf( "blad dodawania wezla\n" );
  143. system( "pause" );
  144. exit( 1 );
  145. }
  146. else printf( "dodano\n" );
  147. printf( "Odbiorca 1 ; Nadawca 2 \n" );
  148. scanf("%d",&wybor);
  149. if(wybor==1)
  150. {
  151. printf( "Odbiorca\n");
  152. printf( "Nazwa nadawcy: " );
  153. scanf( "%s", callname );
  154.  
  155. err = LISTEN( &blok, callname );
  156. if( err != NRC_GOODRET )
  157. {
  158. printf( "Blad podlaczenia do sesji\n" );
  159. system( "pause" );
  160. exit( 1 );
  161. }else printf( "Polaczono z: %s\n",callname );
  162. do{
  163. memset( receive_buffer, 0, sizeof( receive_buffer ) );
  164. err = RECEIVE( &blok );
  165. if( err != NRC_GOODRET )
  166. {
  167. printf( "blad odbierania\n" );
  168. system( "pause" );
  169. exit( 1 );
  170. }
  171. }while(strcmp(receive_buffer,"koniec"));
  172. err = HANGUP( &blok );
  173. if( err != NRC_GOODRET )
  174. {
  175. printf( "Blad podczas rozlaczania sesji\n" );
  176. system( "pause" );
  177. exit( 1 );
  178. }else printf( "Rozlaczono\n" );
  179. }
  180. if(wybor==2)
  181. {
  182. printf( "Nadawca\n");
  183. printf( "Nazwa odbiorcy: " );
  184. scanf( "%s", callname );
  185.  
  186. err = CALL(&blok, callname);
  187. if( err != NRC_GOODRET )
  188. {
  189. printf( "Blad rozpoczynania - %d\n",err );
  190. system( "pause" );
  191. exit( 1 );
  192. } else printf( "Polaczono z: %s\n",callname );
  193. printf("%d",lsn);
  194. do{
  195. printf( "Wiadomosc do wyslania: " );
  196. scanf( "%s", send_buffer );
  197.  
  198. err = SEND( &blok, send_buffer );
  199. if( err != NRC_GOODRET )
  200. {
  201. printf( "Blad wysylania\n" );
  202. system( "pause" );
  203. exit( 1 );
  204. } else printf( "wyslano\n" );
  205. }while(strcmp(send_buffer,"koniec"));
  206. }
  207. system( "pause" );
  208.  
  209. err = DELNAME( &blok, name );
  210. if( err != NRC_GOODRET )
  211. {
  212. printf( "blad usuwania wezla\n" );
  213. system( "pause" );
  214. exit( 1 );
  215. }
  216. else printf( "usunieto\n" );
  217.  
  218. system( "pause" );
  219. }
Advertisement
Add Comment
Please, Sign In to add comment