www.pudn.com > MOXA--DOS.rar > TC-EX2.C
#include#include "..\..\lib\c\head-c.h" #include "..\..\lib\c\file-c.h" #include "..\..\lib\c\modem-c.h" long FileXmitLen, FileExpectLen; void main(void) { int i, port_no[32], error, sel; int total_port, port; char f_name[80], phone_no[80]; char * ff_name[5]; int myfunc(); printf("\n"); if ( sio_reset() <= 0 ) { printf("No Driver Found !\n"); exit(0); } total_port = sio_getports(port_no, 32); printf("Exist port number : "); for ( i=0; i "); scanf("%d", &sel); error = 0; switch ( sel ) { case 1: printf("Dial out phone number : "); scanf("%s", phone_no); printf("\n"); error = modem_connect(port, phone_no); break; case 2: error = modem_connect(port, NULL); break; case 3: sio_McHangUp(port); printf("\nHang up O.K."); break; case 4: printf("Waiting for file transfer or press ESC key to abort.\n"); FileXmitLen = FileExpectLen = 0; ff_name[0] = f_name; error = sio_FtZmodemRx(port, ff_name, 1, myfunc, 27); if ( error > 0 ) { printf("\nReceive file name : %s\n", ff_name[0]); printf("\nReceive file length : %ld\n", FileXmitLen); if ( FileExpectLen ) printf("\nExpect file length : %ld\n", FileExpectLen); } break; case 5: printf("Transfer file name : "); scanf("%s", f_name); printf("Waiting for file transfer or press ESC key to abort.\n"); FileXmitLen = FileExpectLen = 0; error = sio_FtZmodemTx(port, f_name, myfunc, 27); if ( error == 0 ) { printf("\nTransmit file name : %s\n", f_name); printf("\nTransmit file length : %ld\n", FileXmitLen); } break; } } while ( (sel != 6) && (error == 0) ); sio_close(port); if ( error ) printf("\nError code = %d\n", error); } modem_connect(port, phone_no) int port; char * phone_no; { char code[80]; int n; printf("Modem Reset..."); if ( sio_McReset(port) >= 0 ) printf("OK\n"); else { printf("FAIL\n"); return(-1); } if ( phone_no == NULL ) { printf("Set auto-answer mode (connect after 2 rings)\n"); sio_McAutoAnswer(port, 2); } else { printf("Dialing (TEL:%s) ... ", phone_no); if ( (n = sio_McDial(port, phone_no)) < 0 ) { printf("error code = %d!\n", n); return(-1); } printf("OK\n"); } printf("Wait connecting or press ESC to abort ..."); while ( 1 ) { if ( kbhit() && (getch() == 27) ) { printf("user abort !\n"); return(-1); } if ( (n = sio_McIsConnect(port, code)) < 0 ) { printf("error code = %d!\n", n); return(-1); } if ( n > 0 ) { printf("%s\n", code); break; } } return(0); } myfunc(filelen, rlen, rbuf, expectlen) long filelen; int rlen; char far * rbuf; long expectlen; { if ( filelen != FileXmitLen ) { FileXmitLen = filelen; printf("\rXmitLength = %6ld This call time recv length = %4d", filelen, rlen); } FileExpectLen = expectlen; return(0); }