主题:[原创]socket transmitfile函数传文件问题
我的发送端是这样写的:
SOCKET hSocket;
hSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(hSocket==INVALID_SOCKET)//如果创建失败,则返回错误消息
{
printf("socket() failed: %d\n", WSAGetLastError());
return 1;
}
if(connect(hSocket, (struct sockaddr *)&server , sizeof(server))==SOCKET_ERROR)//与主机建立连接
{
printf("connect() failed: %d\n", WSAGetLastError());
return 1;
}
FILE *fp;
fp=fopen("1","r");
TransmitFile(hSocket,fp,0,0,0,NULL,TF_DISCONNECT );
fclose(fp);
closesocket(hSocket);//关闭这个套接字
接受端代码:
char sz[1000000];
while(true)
{
int ret=recv(sClient,sz,strlen(sz),0);
if(ret==SOCKET_ERROR )
break;
sz[ret]='\0';
printf("%s\n",sz);break;
//写入文件
}
问题 1:TransmitFile能把文件发出去吗?发的是文件里面的内容,还是发的整个文件数据?
2.接手端接受到的是字符串吧?怎么把字符串还原为发送端发送的文件呢?也就是怎么写文件呢?
SOCKET hSocket;
hSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(hSocket==INVALID_SOCKET)//如果创建失败,则返回错误消息
{
printf("socket() failed: %d\n", WSAGetLastError());
return 1;
}
if(connect(hSocket, (struct sockaddr *)&server , sizeof(server))==SOCKET_ERROR)//与主机建立连接
{
printf("connect() failed: %d\n", WSAGetLastError());
return 1;
}
FILE *fp;
fp=fopen("1","r");
TransmitFile(hSocket,fp,0,0,0,NULL,TF_DISCONNECT );
fclose(fp);
closesocket(hSocket);//关闭这个套接字
接受端代码:
char sz[1000000];
while(true)
{
int ret=recv(sClient,sz,strlen(sz),0);
if(ret==SOCKET_ERROR )
break;
sz[ret]='\0';
printf("%s\n",sz);break;
//写入文件
}
问题 1:TransmitFile能把文件发出去吗?发的是文件里面的内容,还是发的整个文件数据?
2.接手端接受到的是字符串吧?怎么把字符串还原为发送端发送的文件呢?也就是怎么写文件呢?