G
garg29
Guest
Chào,
Bất cứ ai có thể vui lòng cho tôi biết làm thế nào tôi có thể chuyển các tập tin giữa 2-máy tính sử dụng cổng song song (không có mạng LAN card).Tôi tìm thấy một trong những chương trình trong C để làm điều này, nhưng nó không làm ra, tôi rằng, cũng như gửi tập tin đính kèm.Xin hãy giúp tôi.
Thanks với best regards,
Amit/ * File Transfer-Binu LS * /
# include <stdio.h>
# include <conio.h>
# include <process.h>
# include <dos.h>
int port_address;
void main ()
(
void baudset (dài); / * fn người dùng xác định.để thiết lập tốc độ truyền .* /
void comparm (int, int, int); / * fn người dùng xác định.thiết lập cho tính chẵn lẻ, stopbits, databits vv * /
FILE * f;
char chr;
char * fname;
int kết quả, địa vị, sự lựa chọn, cảng;
int fstat, mstat, lstat;
clrscr ();
textcolor (6);
if (15,5);
cprintf ( "CHƯƠNG TRÌNH CHUYỂN FILES GIỮA HAI TÍNH");
textcolor (3);
cprintf ( "Ver 1.0 \. n");
if (12,6);
textcolor (14);
cprintf ( "theo LS Binu, Lect. / Dept of ÈÍË /. NI College of Engg., Kumaracoil \ n");
if (25,10);
textcolor (7);
cprintf ( "1. GỬI FILE \ n");
if (25,11);
cprintf ( "2. Nhận FILE \ n");
if (25,12);
cprintf ( "3. THOÁT \ n");
if (25,13);
cprintf ( "Nhập Sự lựa chọn (1,2 hoặc 3 ):");
scanf ( "% d", & sự lựa chọn);
chuyển đổi (lựa chọn)
(
trường hợp 1:
(
printf ( "\ n");
printf ( "Chọn Port (Nhập '1 'cho COM1 '2' cho COM2 ):");
scanf ( "% d", & cảng);
if (port == 1)
port_address = 0x3F8;
khác
port_address = 0x2F8;
baudset ((dài) 2400); / * thiết lập tốc độ truyền đến 2400 * /
comparm (0,1,
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />
; / * Không có tính chẵn lẻ, 1 stop bit, 8 bit dữ liệu * /
outportb (port_address 4,1 | 2); / * bật tay lắc tín hiệu * /
textcolor (4);
printf ( "Nhập tập tin gửi:");
scanf ( "% 15", & fname);
f = fopen (& fname, "r");
if (f == NULL)
(
cprintf ( "KHÔNG CÓ THỂ MỞ FILE: \ n");
exit (0);
)
textcolor (2);
for (;
<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />(
if (kbhit ())
(
if (getch () == 27) / phím esc '* nếu' ép sau đó thoát * /
exit (0);
)
lstat = inportb (port_address 5); / * nếu phát giữ reg.rỗng * /
if (! (lstat & 32)) / * gửi các ký tự tiếp theo * /
tiếp tục;
khác
(
chr = fgetc (f); / * nhận được một nhân vật từ tập tin * /
)
if (chr == EOF) / * nếu kết thúc tập tin * /
(
cprintf ( "truyền hoàn thành");
outportb (port_address, EOF);
exit (0);
)
outportb (port_address, chr); / * gửi nhân vật * /
putchar (chr); / * hiển thị các ký tự được gửi * /
)
fclose (f);
break;
)
Trường hợp 2:
(
printf ( "\ n");
printf ( "Chọn Port (Nhập '1 'cho COM1 '2' cho COM2 ):");
scanf ( "% d", & cảng);
if (port == 1)
port_address = 0x3F8;
khác
port_address = 0x2F8;
baudset ((dài) 2400);
comparm (0,1,
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />
;
outportb (port_address 4,1 | 2);
textcolor (4);
printf ( "Tiết kiệm là tên tập tin ():");
scanf ( "% 15", & fname);
f = fopen (& fname, "w");
if (f == NULL)
(
cprintf ( "KHÔNG CÓ THỂ MỞ FILE \ n");
exit (0);
)
printf ( "Waiting for i / p \ n");
cprintf ( "Press ESC để thoát \ n");
for (;
<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />(
if (kbhit ())
(
if (getch () == 27)
break;
)
fstat = inportb (port_address 5);
nếu (fstat & 2)
cprintf ( "Over_run lỗi \ n");
nếu (fstat & 4)
cprintf ( "chẵn lẻ lỗi \ n");
nếu (fstat &
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />cprintf ( "khung lỗi \ n");
nếu (fstat & 16)
cprintf ( "Break nhận được \ n");
if (! (fstat & 1)) / * nếu dữ liệu không sẵn sàng * /
tiếp tục;
chr = inportb (port_address); / * nếu dữ liệu đã sẵn sàng đọc nó từ nhận được đệm * /
if (chr == EOF)
(
textcolor (2);
cprintf ( "File nhận được");
exit (0);
)
putchar (chr);
fputc (chr, f);
)
outportb (port_address 4,0); / * tắt lắc tay tín hiệu * /
fclose (f);
break;
)
trường hợp 3:
break;
)
)
void baudset (dài baudrate)
(
int ước;
unsigned char LSB, MSB;
ước = 1152001/baudrate;
MSB = ước>> 8;
LSB = (số chia <<
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />
>> 8;
outportb (port_address 3.128); / * cho phép truy cập vào các chốt ước bằng cách thiết lập bit truy cập trong cntrl dòng.reg .* /
outportb (port_address, LSB); / * LSB của số chia * /
outportb (port_address 1, MSB); / * MSB của số chia * /
)
void comparm (int chẵn lẻ, int dừng, databits int)
(
int parmbyte;
parmbyte = databits-5;
if (stop == 2)
parmbyte | = 4;
nếu (chẵn lẻ = 0!)
parmbyte | = 8;
nếu (chẵn lẻ == 2)
parmbyte | = 16;
parmbyte outportb (port_address 3,); / * viết cntrl.từ tương ứng * /
/ * để tính chẵn lẻ trong, dừng bit vv trong * /
) / * Dòng kiểm soát reg .* /
Bất cứ ai có thể vui lòng cho tôi biết làm thế nào tôi có thể chuyển các tập tin giữa 2-máy tính sử dụng cổng song song (không có mạng LAN card).Tôi tìm thấy một trong những chương trình trong C để làm điều này, nhưng nó không làm ra, tôi rằng, cũng như gửi tập tin đính kèm.Xin hãy giúp tôi.
Thanks với best regards,
Amit/ * File Transfer-Binu LS * /
# include <stdio.h>
# include <conio.h>
# include <process.h>
# include <dos.h>
int port_address;
void main ()
(
void baudset (dài); / * fn người dùng xác định.để thiết lập tốc độ truyền .* /
void comparm (int, int, int); / * fn người dùng xác định.thiết lập cho tính chẵn lẻ, stopbits, databits vv * /
FILE * f;
char chr;
char * fname;
int kết quả, địa vị, sự lựa chọn, cảng;
int fstat, mstat, lstat;
clrscr ();
textcolor (6);
if (15,5);
cprintf ( "CHƯƠNG TRÌNH CHUYỂN FILES GIỮA HAI TÍNH");
textcolor (3);
cprintf ( "Ver 1.0 \. n");
if (12,6);
textcolor (14);
cprintf ( "theo LS Binu, Lect. / Dept of ÈÍË /. NI College of Engg., Kumaracoil \ n");
if (25,10);
textcolor (7);
cprintf ( "1. GỬI FILE \ n");
if (25,11);
cprintf ( "2. Nhận FILE \ n");
if (25,12);
cprintf ( "3. THOÁT \ n");
if (25,13);
cprintf ( "Nhập Sự lựa chọn (1,2 hoặc 3 ):");
scanf ( "% d", & sự lựa chọn);
chuyển đổi (lựa chọn)
(
trường hợp 1:
(
printf ( "\ n");
printf ( "Chọn Port (Nhập '1 'cho COM1 '2' cho COM2 ):");
scanf ( "% d", & cảng);
if (port == 1)
port_address = 0x3F8;
khác
port_address = 0x2F8;
baudset ((dài) 2400); / * thiết lập tốc độ truyền đến 2400 * /
comparm (0,1,
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />
; / * Không có tính chẵn lẻ, 1 stop bit, 8 bit dữ liệu * /
outportb (port_address 4,1 | 2); / * bật tay lắc tín hiệu * /
textcolor (4);
printf ( "Nhập tập tin gửi:");
scanf ( "% 15", & fname);
f = fopen (& fname, "r");
if (f == NULL)
(
cprintf ( "KHÔNG CÓ THỂ MỞ FILE: \ n");
exit (0);
)
textcolor (2);
for (;
<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />(
if (kbhit ())
(
if (getch () == 27) / phím esc '* nếu' ép sau đó thoát * /
exit (0);
)
lstat = inportb (port_address 5); / * nếu phát giữ reg.rỗng * /
if (! (lstat & 32)) / * gửi các ký tự tiếp theo * /
tiếp tục;
khác
(
chr = fgetc (f); / * nhận được một nhân vật từ tập tin * /
)
if (chr == EOF) / * nếu kết thúc tập tin * /
(
cprintf ( "truyền hoàn thành");
outportb (port_address, EOF);
exit (0);
)
outportb (port_address, chr); / * gửi nhân vật * /
putchar (chr); / * hiển thị các ký tự được gửi * /
)
fclose (f);
break;
)
Trường hợp 2:
(
printf ( "\ n");
printf ( "Chọn Port (Nhập '1 'cho COM1 '2' cho COM2 ):");
scanf ( "% d", & cảng);
if (port == 1)
port_address = 0x3F8;
khác
port_address = 0x2F8;
baudset ((dài) 2400);
comparm (0,1,
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />
;
outportb (port_address 4,1 | 2);
textcolor (4);
printf ( "Tiết kiệm là tên tập tin ():");
scanf ( "% 15", & fname);
f = fopen (& fname, "w");
if (f == NULL)
(
cprintf ( "KHÔNG CÓ THỂ MỞ FILE \ n");
exit (0);
)
printf ( "Waiting for i / p \ n");
cprintf ( "Press ESC để thoát \ n");
for (;
<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />(
if (kbhit ())
(
if (getch () == 27)
break;
)
fstat = inportb (port_address 5);
nếu (fstat & 2)
cprintf ( "Over_run lỗi \ n");
nếu (fstat & 4)
cprintf ( "chẵn lẻ lỗi \ n");
nếu (fstat &
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />cprintf ( "khung lỗi \ n");
nếu (fstat & 16)
cprintf ( "Break nhận được \ n");
if (! (fstat & 1)) / * nếu dữ liệu không sẵn sàng * /
tiếp tục;
chr = inportb (port_address); / * nếu dữ liệu đã sẵn sàng đọc nó từ nhận được đệm * /
if (chr == EOF)
(
textcolor (2);
cprintf ( "File nhận được");
exit (0);
)
putchar (chr);
fputc (chr, f);
)
outportb (port_address 4,0); / * tắt lắc tay tín hiệu * /
fclose (f);
break;
)
trường hợp 3:
break;
)
)
void baudset (dài baudrate)
(
int ước;
unsigned char LSB, MSB;
ước = 1152001/baudrate;
MSB = ước>> 8;
LSB = (số chia <<
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Mát mẻ" border="0" />
>> 8;
outportb (port_address 3.128); / * cho phép truy cập vào các chốt ước bằng cách thiết lập bit truy cập trong cntrl dòng.reg .* /
outportb (port_address, LSB); / * LSB của số chia * /
outportb (port_address 1, MSB); / * MSB của số chia * /
)
void comparm (int chẵn lẻ, int dừng, databits int)
(
int parmbyte;
parmbyte = databits-5;
if (stop == 2)
parmbyte | = 4;
nếu (chẵn lẻ = 0!)
parmbyte | = 8;
nếu (chẵn lẻ == 2)
parmbyte | = 16;
parmbyte outportb (port_address 3,); / * viết cntrl.từ tương ứng * /
/ * để tính chẵn lẻ trong, dừng bit vv trong * /
) / * Dòng kiểm soát reg .* /