91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 17KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-25
  • 語言: 其他
  • 標簽: C??

資源簡介

做項目時寫的文件傳輸?shù)脑创a,解決了很多的細節(jié)問題,拿出來與大家共享!

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?

int?s;??????//判斷socket是否建立成功

void?baswap(bdaddr_t?*dst?const?bdaddr_t?*src)
{
??register?unsigned?char?*d?=?(unsigned?char?*)?dst;
??register?const?unsigned?char?*s?=?(const?unsigned?char?*)?src;
??register?int?i;
??for?(i?=?0;?i<6;?i++)
?????d[i]?=?s[5-i];
}

//將接收到的字符串型的設(shè)備地址轉(zhuǎn)換成bdaddr_t數(shù)據(jù)結(jié)構(gòu)完成藍牙地址和字符串的互換
int?str2ba(const?char?*str?bdaddr_t?*ba)???????
{
??uint8_t?b[6];
??const?char?*ptr?=?str;
??int?i;

??for?(i=0;?i<6;?i++)?
????{
??????b[i]?=?(uint8_t)?strtol(ptr?NULL?16);
??????if?(i?!=?5?&&?!(ptr?=?strchr(ptr?‘:‘)))
?????????ptr?=?“:00:00:00:00:00“;
?????????ptr++;
????}
??baswap(ba?(bdaddr_t?*)?b);
??return?0;
}

void?sendData(char?*dest)
{
???struct?sockaddr_rc?addr?=?{0};
???int?status;?
???int?i;
???FILE?*in;???????????????????//定義接收文件的指針
???char?buf[512]?=?{0};??????????//接收文件的buf數(shù)組
???char?filename[30]?=?{0};???????//用于存放接收到的文件名字的數(shù)組

???//給該應用分配一個socket套接字
???s?=?socket(AF_BLUETOOTH?SOCK_STREAM?BTPROTO_RFCOMM);
???if(s??????{
???????perror(“create?socket?error“);
???????exit(1);
?????}
???
???//設(shè)置連接的參數(shù)(確定是由哪兩個設(shè)備進行連接)
???addr.rc_family?=?AF_BLUETOOTH;
???addr.rc_channel?=?(uint8_t)1;
???str2ba(dest?&addr.rc_bdaddr);
???
???//連接起服務
???printf(“connectting...\n“);
???status?=?connect(s?(struct?sockaddr?*)&addr?sizeof(addr));
???
???//?建立好連接后進行文件的傳輸
???if(status==0)
????{
?????printf(“success!\n“);
?????status?=?write(s?“hello!“?6);??//測試通信,發(fā)送“hello”
?????
?????printf(“Please?input?need?send?file‘s?name:\n“);?
?????scanf(“%s“?filename);
?????status?=?write(s?filename?sizeof(filename));??//發(fā)送傳輸文件的名字
?
?????in?=?fopen(?filename?“rb“?);
?????if(?in==NULL?)
???????{
??? printf(“Error:cannot?open?file!!!\n“);
??? exit(0);
???????}
?????
?????printf(“The?document?is?transmitting............\n“);
?????while(?!feof(in)?)
???????{
????????i?=?fread(&buf?sizeof(buf)?1?in);????//?從文件中得到sizeof(buf)個字符?
????????status?=?write(s?&buf?sizeof(buf)?);
????????memset(buf?0?sizeof(buf));
????????if(status<0)?
?????????{?
??????????perror(“uh?oh“);
?????????}
???????}

?????fclose(in);
?????memset(buf?0?sizeof(buf));
?????
?????status?=?write(s?“goodbye“?7);??//發(fā)送文件傳輸完成的信號“goodbye“
?????printf(“The?file?transfer?finished!\n“);
????}
???else
????{
?????printf(“Failed!\n“);
????}
}

int?main(?int?argc??char?**argv)
{??
???char?*dest;??????????????????//用于存放BT設(shè)備地址字符串的指針
???//用于判斷起動該應用程序的命令中是否指定了服務器的設(shè)備地址
???if(argc==2)
?????{
???????dest=argv[1];
?????}
???else
?????{
???????printf(“prarm?error:please?input?buletooth‘s?address\n“);
???????exit(1);
?????}
??sendData(dest);?
???
??close(s);??//關(guān)閉服務
??return?0;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????14216??2007-06-09?19:55??文件傳輸源碼和可執(zhí)行文件\fileClient

?????文件???????3235??2007-06-09?19:55??文件傳輸源碼和可執(zhí)行文件\fileClient.c

?????文件??????17173??2007-06-09?19:55??文件傳輸源碼和可執(zhí)行文件\fileServer

?????文件???????5455??2007-06-09?19:55??文件傳輸源碼和可執(zhí)行文件\fileServer.c

?????目錄??????????0??2008-06-03?23:05??文件傳輸源碼和可執(zhí)行文件

-----------?---------??----------?-----??----

????????????????40079????????????????????5


評論

共有 條評論