发送文件Word格式.docx

上传人:b****5 文档编号:21008889 上传时间:2023-01-26 格式:DOCX 页数:8 大小:15.78KB
下载 相关 举报
发送文件Word格式.docx_第1页
第1页 / 共8页
发送文件Word格式.docx_第2页
第2页 / 共8页
发送文件Word格式.docx_第3页
第3页 / 共8页
发送文件Word格式.docx_第4页
第4页 / 共8页
发送文件Word格式.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

发送文件Word格式.docx

《发送文件Word格式.docx》由会员分享,可在线阅读,更多相关《发送文件Word格式.docx(8页珍藏版)》请在冰豆网上搜索。

发送文件Word格式.docx

/*接收文件名*/

InitPort(int 

port,unsigned 

char 

para);

/*初始化端口*/

SendPort(int 

port,char 

c);

/*端口发送*/

int 

ReadPort(int 

port);

/*读端口字节*/

CheckState(int 

/*检查端口状态*/

Receive(int 

port,int 

*G);

/*接收一个字节*/

main(int 

argc,char 

*argv[])

{

if(argc<

2){

printf("

Please 

input 

R(receive) 

or 

S(sent) 

parametre:

);

exit

(1);

}

InitPort(PORT,231);

if(*argv[1]=='

'

S'

) 

/*检查选择的有效性*/

SendFile(argv[2]);

else 

R'

else{

Error 

parament.Please 

again."

*fname)

FILE 

*fp;

ch,s;

if((fp=fopen(fname,"

rb"

))==NULL)

Can'

open 

the 

file.\n"

SendFileName(fname);

do{

ch=(int)getc(fp);

if(ferror(fp)){

reading 

break;

s=ch%16;

/*取文件中一个字节的低4位*/

Send(s);

s=ch/16;

/*取文件中一个字节的高4位*/

}while(!

feof(fp));

s=46;

/*发送文件结束信息*/

fclose(fp);

Send(s)

s;

G;

SendPort(PORT,s);

G=ReadPort(PORT);

/*等待握手信号*/

if(s!

=G)

s=s+16;

}while(s!

=G);

SendFileName(fname)

*fname;

s,ch;

Now 

transmit 

file.Please 

wait..."

while(*fname){

ch=(int)fname++;

/*取文件名中一个字节的低4位*/

s=32;

/*发送文件名结束标志*/

ReceiveFile(){

ch;

G1,G2,G3;

fname[15];

GetFileName(fname);

Receiving 

file 

%s.\n"

fname);

remove(fname);

wb"

output 

/*循环为检测每次接受的数据是否为新数据,如果不是,*/

/*则用此次接收的数据覆盖上次接收的数据*/

G1=ReadPort(PORT);

G2=Receive(PORT,&

G1);

do{ 

G3=Receive(PORT,&

G2);

ch=(char)(G1%16+G2*16);

/*恢复分开的数据,组合高4位和低4位*/

putc(ch,fp);

\nError 

writing 

file."

G3);

G1=G3;

}while(G1/16!

=48);

\nTransmit 

finished."

Receive(port,G)

port,*G;

GM;

SendPort(port,*G);

GM=ReadPort(port);

if(GM/16==0)

return 

if(GM/16==1){

*G=GM;

SendPort(port,GM);

}while(GM/16==1);

*f)

G2=ReadPort(PORT);

ch=(char)(G1%16+G2/16);

*f=ch;

*f++;

=32);

File 

name 

finished.\n"

InitPort(port,para)

port;

unsigned 

para;

union 

REGS 

reg;

reg.x.dx=port;

reg.h.ah=0;

reg.h.al=para;

int86(0x14,®

®

SendPort(port,c)

c;

reg.h.al=c;

reg.h.ah=1;

if(reg.h.ah&

128){

\nSend 

mistakes!

ReadPort(port)

while(!

(CheckState(port)&

256)){

if(kbhit()){/*如端口长期无数据可人为终止等待*/

Press 

any 

key 

to 

exit."

getch();

reg.h.ah=2;

\nRead 

mistake!

reg.h.al;

CheckState(port)

reg.h.ah=3;

reg.x.ax;

以上程序可传送各种格式的文件,也有一定的自动纠错能力,但对于异常情况的

处理能力比较弱,读者可以自己改进。

由于篇幅限制,对于中断14H的功能、入

口参数及返回参数的意义请读者自己查有关资料。

********************************** 

附录:

现在大多数串行口都遵循RS-232标准,以下是最常用的RS-232信号:

名称 

针号 

含义

RTS 4  Request 

send(请求发送)

CTS 5  Clear 

send(清除发送)

DSR 6  Data 

set 

ready(数据设备准备好)

DTR 20 

 Data 

terminal 

ready(数据终端准备好)

TXD 2  Transmit 

data(发送数据)

RXD 3  Receive 

data(接收数据)

GRD 7  Ground(接地)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1