资源简介

基于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个文件信息

评论

共有 条评论