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

  • 大小: 11.27MB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發布日期: 2023-07-09
  • 語言: 其他
  • 標簽: TCP??linux??

資源簡介

本項目利用tcp協議在windows和linux之間傳遞文件,windows下實現服務器端,linux下實現客戶端。此程序可以方便用戶在windows和linux之間快速的傳遞文件,在局域網下傳輸速度可以達到8MB/s。

資源截圖

代碼片段和文件信息

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

//通過一個新建的socket利用緩沖區buffer向客戶端傳遞文件,文件描述符是fp,是一個已經打開的文件
void?send_file(char?*bufferint?NewConnectionFILE?*fp)
{
????int?read_length=0;
????int?sum=0;

????//while(fgets(buffer1000fp)!=NULL)//這種方法經過多次測試發現不行,原因就是不能返回讀取的大小
????while((read_length=fread(buffer11000fp))>0)
????{
????????//int?len=strlen(buffer);
????????int?len=read_length;
????????int?sended=0;
????????int?count;

????????buffer[read_length]=‘\0‘;

????????while(len>0)
????????{
????????????count=send(NewConnectionbuffer+sendedlen0);
????????????len-=count;
????????????sended+=count;
????????}

????????sum+=read_length;
????}

????fclose(fp);
????printf(“succeed?to?transfer?filesend?length?is?%d\n“sum);
}

int?main(int?argcchar?*argv[])
{
????int?sockfd;
????int?len;
????struct?sockaddr_in?address;
????int?result;
????char?*path;
????char*?file_name;
????char?state;
????char?buffer[1000];
????int?choice;

????if(argc?<4)
????{
????????perror(“Input?format:?transfer?send/receive?file_path?ip?port(optional)!\n“);
????????exit(-1);
????}
????//獲取用戶的操作,1表示接收文件,2表示發送文件給服務器
????choice=atoi(argv[1]);

????//獲取要接收文件在服務器上的路徑或者要發送的文件
????path=argv[2];
????if(choice?==1)
????????printf(“want?to?receive?file?%s\n“path);
????else
????????printf(“want?to?send?file?%s\n“path);
????if(strrchr(path‘/‘)==NULL)
????{
????????printf(“You?have?inputted?a?file?without?assigning?a?directory“);
????????if(choice?==1)
????????????printf(“server?can‘t?locate?the?exact?position?of?the?file!\n“);
????????else
????????????printf(“client?can‘t?locate?the?file?to?send\n“);
????????exit(-1);
????}
????file_name=strrchr(path‘/‘)+1;

????sockfd=socket(AF_INETSOCK_STREAM0);

????address.sin_family=AF_INET;
????address.sin_addr.s_addr=inet_addr(argv[3]);
????if(argc==5)
????????address.sin_port=htons(atoi(argv[4]));
????else
????????address.sin_port=htons(12345);

????len=sizeof(address);

????result=connect(sockfd(struct?sockaddr*)&addresslen);

????if(result==-1)
????{
????????perror(“connect?failed!“);
????????exit(-1);
????}

????if(choice==1)//從服務器接收文件
????{
????????printf(“ok\n“);
????????//開始通信
????????write(sockfd“1“1);//向服務器發送一個標志,說明是要從服務器接收文件
????????write(sockfdpath100);

????????read(sockfd&state1);
????????if(state==‘1‘)
????????{
????????????FILE?*fp;
????????????char??directory[20]=“download/“;
????????????fp=fopen(strcat(directoryfile_name)“rb“);//這里打開文件要按二進制打開,否則會在傳輸過程中出錯,因為有換行符的問題
????????????if(fp==NULL)
????????????{
????????????????write(sockfd“0“1);
????????????????printf(“open?or?create?file?failed!\n“);
????????????????exit(-1);
????????????}
????????????else
????????????{
????????????????int?file_length;
????????????????char?length[10];
????????????????int?finished=0;
????????????????int?len=1000;
????????????????int?count=0;
????????????????int?read_length;

????????????????write(sockfd“1“1

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

?????文件??????13700??2012-03-02?22:31??TCP文件傳輸\client\transfer

?????文件???????5610??2012-03-02?22:31??TCP文件傳輸\client\transfer.c

?????文件????????241??2012-03-02?22:44??TCP文件傳輸\ReadMe.txt

?????文件??????51833??2012-03-02?22:28??TCP文件傳輸\TCP文件傳輸?.docx

?????文件??????31744??2012-03-02?22:10??TCP文件傳輸\Transfer\Debug\Transfer.exe

?????文件?????371444??2012-03-02?22:10??TCP文件傳輸\Transfer\Debug\Transfer.ilk

?????文件?????412672??2012-03-02?22:10??TCP文件傳輸\Transfer\Debug\Transfer.pdb

?????文件???33226752??2012-03-02?20:21??TCP文件傳輸\Transfer\ipch\transfer-4d8310bf\transfer-81aa3f91.ipch

?????文件????????680??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\cl.command.1.tlog

?????文件??????13258??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\CL.read.1.tlog

?????文件????????516??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\CL.write.1.tlog

?????文件???????1420??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\link.command.1.tlog

?????文件???????2720??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\link.read.1.tlog

?????文件????????884??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\link.write.1.tlog

?????文件????????564??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\mt.command.1.tlog

?????文件????????846??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\mt.read.1.tlog

?????文件????????386??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\mt.write.1.tlog

?????文件????????381??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\Transfer.exe.intermediate.manifest

?????文件?????????87??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\Transfer.lastbuildstate

?????文件???????4696??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\Transfer.log

?????文件??????32791??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\transfer.obj

?????文件?????150528??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\vc100.idb

?????文件??????77824??2012-03-02?22:10??TCP文件傳輸\Transfer\Transfer\Debug\vc100.pdb

?????文件???????5057??2012-03-02?21:33??TCP文件傳輸\Transfer\Transfer\transfer.c

?????文件???????3224??2012-02-23?21:59??TCP文件傳輸\Transfer\Transfer\Transfer.vcxproj

?????文件????????944??2012-02-23?21:59??TCP文件傳輸\Transfer\Transfer\Transfer.vcxproj.filters

?????文件????????143??2012-02-23?21:40??TCP文件傳輸\Transfer\Transfer\Transfer.vcxproj.user

?????文件???25579520??2012-03-02?22:28??TCP文件傳輸\Transfer\Transfer.sdf

?????文件????????891??2012-02-23?21:40??TCP文件傳輸\Transfer\Transfer.sln

????..A..H.?????11264??2012-03-02?22:28??TCP文件傳輸\Transfer\Transfer.suo

............此處省略11個文件信息

評論

共有 條評論