Linux下通过TCP传送文件(客户端)

#include #include #include #include #include #include #include #include #include #include //#define SERVERIP "202.195.114.76" #define portnumb 5555 //服务器用来服务的端口 int main(int argc ,char *argv[]) { int sockfd; //定义套接字接口,通过sockfd传送内容 int target; //用来判断是否成功的创建的文件 int k; //一次从read接收到的字节数 int revnumb; //用来判断是否成功的接收到文件名 char serverip[]="202.195.114.76"; //服务器的IP地址 char file[30]; //把接收到的文件名字符串放在file内。 、、char str[35]="/test"; char buff[1024]; //接收缓存 struct sockaddr_in server_addr; //服务器的地址信息 static char storefile[30]="/mnt/test/disk"; //接收到的文件存放的/mnt/test/disk文件夹内 char *pb,*pf; //用于处理文件名地址用的 //建立套接字 if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) {perror("socket:"); exit(1); } //客户端填充服务器的资料 bzero(&server_addr,sizeof(struct sockaddr_in)); server_addr.sin_family=AF_INET; server_addr.sin_port=htons(portnumb); if(inet_aton(serverip,&server_addr.sin_addr)==0) {perror("转换"); exit(1); } //printf("%s/n",inet_ntoa(server_addr.sin_addr)); //客户端发起连接请求 if(connect(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))<0) {perror("connect error:"); exit(1); } //连接成功,获取文件名(30个字节长) if((revnumb=read(sockfd,file,30))<0) {perror("revnumb :"); exit(1); } file[revnumb]='/0'; //创建文件 //获得文件名,并在文件夹下/mnt/test/disk下创建文件 pb=index(file,'/'); while(pb!=0) {pf=pb; pb=pb+1; pb=index(pb,'/'); } printf("%s/n",pf); strcat(storefile,pf); printf("%s/n",storefile); //在本地创建文件 if((target=open(storefile,O_RDWR|O_CREAT,S_IRWXU|S_IRGRP|S_IRWXO))<0) {perror("不能打开文件:"); exit(1); } //接收文件内容 while((k=read(sockfd,buff,sizeof(buff)))>0) write(target,buff,k); printf("/n/n/t/t接收成功!!!/n"); close(sockfd); close(target); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值