資源簡介
基于TCP協議、c語言、socket套接字編程、文件指針讀寫操作的文件傳輸程序,基于s/c架構,運行環境是VC++6.0 ,dos界面的控制臺應用程序。實現功能是,從局域網一臺主機傳輸文件到另一臺主機。代碼簡單有注解,親測保證可以運行。

代碼片段和文件信息
#include?
#include?
#pragma?comment(lib?“WS2_32.lib“)//winsocket2需要的庫文件
#define?onekb?1024
void?main()
{
//加載套接字
WSADATA?????wsaData;
WORD?????wVersion?=?MAKEWORD(22);
WSAStartup(wVersion?&wsaData);
//創建套接字
SOCKET?sockClient=socket(AF_INETSOCK_STREAM0);
sockaddr_in?addrSrv;
addrSrv.sin_family=AF_INET;
addrSrv.sin_addr.S_un.S_addr=inet_addr(“127.0.0.1“);
addrSrv.sin_port=htons(6000);
//向服務器發出連接請求
connect(sockClient(LPSOCKADDR)&addrSrvsizeof(sockaddr_in));
printf(“請輸入請求的文件路徑:(如f:\\a.txt)\n“);
char?sendBuf[100];
gets(sendBuf);
//發送請求文件路徑到服務器
send(sockClientsendBufstrlen(sendBuf)+10);
//進行文件操作
printf(“請輸入保存文件的路徑:(如f:\\b.txt)\n“);
char?filename[100];
gets(filename);
FILE?*fp=fopen(filename“wb“);
if?(fp?==?NULL)
{
printf(“打開文件失敗!\n“);
exit(1);
}
printf(“打開文件成功!\n“);
//接收文件數據
int?countsum=0;
char?recvBuf[onekb];
/* for(int?i=0;i<1778;++i)
{
memset(recvBuf?0?sizeof(recvBuf));
count=recv(sockClientrecvBufonekb0);
fwrite(recvBuf1countfp);
}
memset(recvBuf?0?sizeof(recvBuf));
recv(sockClientrecvBufonekb0);
fwrite(recvBuf1countfp);*/
while((count=recv(sockClientrecvBufonekb0))==onekb)
{
printf(“%d\n“count);
fwrite(recvBuf1count-1fp);
sum+=count;
}
printf(“%d\n“count);
fwrite(recvBuf1count-1fp);
sum+=count;
printf(“接收了%d字節的數據\n“sum);
fclose(fp);
//關閉套接字
closesocket(sockClient);
WSACleanup();
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????15372??2014-08-30?00:24??tcp_文件傳輸\tcp_client_文件傳輸_1\Debug\demo.obj
?????文件?????180341??2014-08-30?00:24??tcp_文件傳輸\tcp_client_文件傳輸_1\Debug\tcp_client_文件傳輸_1.exe
?????文件?????211572??2014-08-30?00:24??tcp_文件傳輸\tcp_client_文件傳輸_1\Debug\tcp_client_文件傳輸_1.ilk
?????文件????3641344??2014-08-29?16:59??tcp_文件傳輸\tcp_client_文件傳輸_1\Debug\tcp_client_文件傳輸_1.pch
?????文件?????476160??2014-08-30?00:24??tcp_文件傳輸\tcp_client_文件傳輸_1\Debug\tcp_client_文件傳輸_1.pdb
?????文件?????140288??2014-08-30?00:24??tcp_文件傳輸\tcp_client_文件傳輸_1\Debug\vc60.idb
?????文件??????77824??2014-08-30?00:24??tcp_文件傳輸\tcp_client_文件傳輸_1\Debug\vc60.pdb
?????文件???????1625??2014-08-30?00:24??tcp_文件傳輸\tcp_client_文件傳輸_1\demo.cpp
?????文件????1821491??2014-08-30?00:13??tcp_文件傳輸\tcp_client_文件傳輸_1\f
?????文件???????4447??2014-08-29?17:20??tcp_文件傳輸\tcp_client_文件傳輸_1\tcp_client_文件傳輸_1.dsp
?????文件????????550??2014-08-29?16:43??tcp_文件傳輸\tcp_client_文件傳輸_1\tcp_client_文件傳輸_1.dsw
?????文件??????41984??2014-08-30?00:26??tcp_文件傳輸\tcp_client_文件傳輸_1\tcp_client_文件傳輸_1.ncb
?????文件??????48640??2014-08-30?00:26??tcp_文件傳輸\tcp_client_文件傳輸_1\tcp_client_文件傳輸_1.opt
?????文件???????1396??2014-08-30?00:24??tcp_文件傳輸\tcp_client_文件傳輸_1\tcp_client_文件傳輸_1.plg
?????文件??????15822??2014-08-30?00:24??tcp_文件傳輸\tcp_srv_文件傳輸_1\Debug\demo.obj
?????文件?????180335??2014-08-30?00:24??tcp_文件傳輸\tcp_srv_文件傳輸_1\Debug\tcp_srv_文件傳輸_1.exe
?????文件?????226228??2014-08-30?00:24??tcp_文件傳輸\tcp_srv_文件傳輸_1\Debug\tcp_srv_文件傳輸_1.ilk
?????文件????3641344??2014-08-29?16:43??tcp_文件傳輸\tcp_srv_文件傳輸_1\Debug\tcp_srv_文件傳輸_1.pch
?????文件?????476160??2014-08-30?00:24??tcp_文件傳輸\tcp_srv_文件傳輸_1\Debug\tcp_srv_文件傳輸_1.pdb
?????文件?????181248??2014-08-30?00:24??tcp_文件傳輸\tcp_srv_文件傳輸_1\Debug\vc60.idb
?????文件?????118784??2014-08-30?00:24??tcp_文件傳輸\tcp_srv_文件傳輸_1\Debug\vc60.pdb
?????文件???????1780??2014-08-30?00:24??tcp_文件傳輸\tcp_srv_文件傳輸_1\demo.cpp
?????文件???????4414??2014-08-29?16:29??tcp_文件傳輸\tcp_srv_文件傳輸_1\tcp_srv_文件傳輸_1.dsp
?????文件????????544??2014-08-29?16:22??tcp_文件傳輸\tcp_srv_文件傳輸_1\tcp_srv_文件傳輸_1.dsw
?????文件??????41984??2014-08-30?00:26??tcp_文件傳輸\tcp_srv_文件傳輸_1\tcp_srv_文件傳輸_1.ncb
?????文件??????48640??2014-08-30?00:26??tcp_文件傳輸\tcp_srv_文件傳輸_1\tcp_srv_文件傳輸_1.opt
?????文件????????941??2014-08-30?00:24??tcp_文件傳輸\tcp_srv_文件傳輸_1\tcp_srv_文件傳輸_1.plg
?????目錄??????????0??2014-08-30?11:44??tcp_文件傳輸\tcp_client_文件傳輸_1\Debug
?????目錄??????????0??2014-08-30?11:44??tcp_文件傳輸\tcp_srv_文件傳輸_1\Debug
?????目錄??????????0??2014-08-30?11:44??tcp_文件傳輸\tcp_client_文件傳輸_1
............此處省略5個文件信息
- 上一篇:道路提取算法 c++ opencv
- 下一篇:基于C++的五子棋游戲設計
評論
共有 條評論