|
我写的是服务端程序,等待client的联接,建立socket,获取了客户端传来的文件名和目标地址.
然后以tcp stream方式接收文件.前面都可以了,就是不会些传文件数据部分了.(程序如下)
谢谢!!!!!
[php]
int server_fd,client_fd,len,rlen,k;
struct sockaddr_in addr;
char filename[80],destpath[80];
char *msg="ok\r\n";
server_fd=Init_Tcp_Server_2(1333);
if(server_fd<0){
printf("Init Server Error.\n");
return -1;
}
client_fd=Tcp_Server_Wait_Client(server_fd,&addr,-1,-1);
if(client_fd<0){
printf("Wait Client Error .\n");
return -2;
}
printf("Get Client Fd OK.\n");
while(1)
{
memset(filename,0,80);
if((k=recv(client_fd,filename,80,0))==-1)
{
perror("recv\n");
exit(1);
}
filename[k-2]='\0';
len=strlen(msg);
if (filename=="")
return -3;
else
rlen=send(client_fd,msg,len,0);
while(rlen<strlen(msg))
rlen=send(client_fd,msg,len,0);
memset(destpath,0,80);
if((k=recv(client_fd,destpath,80,0))==-1)
{
perror("recv\n");
exit(1);
}
destpath[k-2]='\0';
//read_tcp(client_fd,filename,80);
len=strlen(msg);
if (filename=="")
return -3;
else
rlen=send(client_fd,msg,len,0);
while (rlen<strlen(msg))
rlen=send(client_fd,msg,len,0);
k=Recv_Tcp_File(client_fd,filename,destpath,5,0); //这个函数怎么写???????????????????????????????????????????????????????????????????
if(k==1){
printf("Transfer Finished \n");
return 0;
}
if(k<0){
printf("Transfer %s Error .\n",filename);
return -1;
}
printf("Transfer One File OK .\n");
}
[/php]
:help |
|