#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
int main()
{
WSAData wsaData;
int err=WSAStartup(WINSOCK_VERSION,&wsaData);
if(0!=err)
{
return -1;
}
SOCKET sock=socket(AF_INET,SOCK_STREAM,0);
sockaddr_in LocalAddr;
LocalAddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
LocalAddr.sin_family=AF_INET;
LocalAddr.sin_port=htons(4000);
bind(sock,(sockaddr*)&LocalAddr,sizeof(sockaddr));
listen(sock,5);
sockaddr_in ClientAddr;
int AddrLen=sizeof(sockaddr);
char path[100]={"0"};
printf("请输入写入文件路径:(例如E:\\2.txt)\n");
gets(path);
FILE *fp=fopen(path,"wb");
if(!fp)
{
printf("打开文件失败!");
return 1;
}
else
{
printf("文件已经打开,等待传输...\n");
}
int count=1;
SOCKET sockconnect=accept(sock,(sockaddr*)&ClientAddr,&AddrLen);
if ( INVALID_SOCKET==sockconnect)
{
printf("accept error");
return 0;
}
else
{
char msg[100]={0};
sprintf(msg,"接收到 %s 的连接!\n",inet_ntoa(ClientAddr.sin_addr));
send(sockconnect,msg,strlen(msg)+1,0);
}
char data[100];
int i=0;
while(1)
{
memset(data,0,100);
int recvlen=recv(sockconnect,data,100,0);
if (recvlen<=0)
{
break;
}
fwrite(data,1,recvlen,fp);
i++;
printf("retlen=%d i=%d\n",recvlen,i);
printf("写入的文件内容为:\n %s\n",data);
}
closesocket(sockconnect);
fclose(fp);
WSACleanup();
return 0;
}
服务器
#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
int main()
{
WSAData wsaData;
int err=WSAStartup(WINSOCK_VERSION,&wsaData);
if(0!=err)
{
return -1;
}
SOCKET sock=socket(AF_INET,SOCK_STREAM,0);
sockaddr_in ServerAddr;
ServerAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
ServerAddr.sin_family=AF_INET;
ServerAddr.sin_port=htons(4000);
connect(sock,(sockaddr*)&ServerAddr,sizeof(sockaddr));
char path[100]={"0"};
printf("请输入文件路径: (例如D:\\1.txt)\n");
gets(path);
FILE* fp=fopen(path,"rb"); // 读写二进制文件 记得 加 b
if(!fp)
{
printf("error!");
return 1;
}
else
{
printf("文件已经打开,等待传输...\n");
}
char data[100]={0};
int len=0;
int i=0;
while ((len=fread(data,1,100,fp))>0 )
{
send(sock,data,len,0);
i++;
printf("i=%d len=%d\n",i,len);
}
fclose(fp);
closesocket(sock);
WSACleanup();
return 0;
}
基于TCP文件传输控制台程序.zip
5星 · 超过95%的资源 需积分: 11 21 浏览量
2013-01-07
21:00:09
上传
评论 2
收藏 1KB ZIP 举报
sengeiou
- 粉丝: 288
- 资源: 136
- 1
- 2
前往页