linux c服务器与客户端之间的文件传输

本文介绍了使用Linux C进行网络编程,实现服务器与客户端间的文件上传和下载功能,支持并发处理,允许多个客户端同时进行操作。此外,还提到了结合MySQL数据库实现登录注册界面的扩展应用。
摘要由CSDN通过智能技术生成

最近做了一下linux C网络方面的项目,简单的写了一下服务器于客户端之间上传,下载文件,利用并发服务器,可以实现多个客户端同时上传,下载。
写的不好,还请大神多多指教!多的不说,一切都在代码中,部分代码如下所示:

/*server.c */ 服务器端
void *recvmation(void *arg)	//接收客户端发送过来的信息,线程
{
	int my_fd = *((int *)arg);
	int n;
		
	while(1)
	{	
		n = recv(my_fd, (struct regis *)&RecvReg, sizeof(RecvReg), 0);
		if(n == -1)
		{
			perror("fail1 to receive!\n");
			//exit(1);
		}
		else if(n == 0)
		{
			continue;   //如果客户端断开连接,服务器继续监听接收
		}

		printf("filename:%s\n", RecvReg.filename);
		printf("flag = %s\n", RecvReg.flag);
		printf("my_fd = %d\n", my_fd);

		if(strncmp(RecvReg.flag, "sendfile", 8) == 0)   //客户端上传文件到服务器
		{
			char Send_Filename[FILE_NAME];
			strcpy(Send_Filename, RecvReg.filename);
			recvfile(my_fd, Send_Filename);   //接受客户端发来的文件
		}
		if(strncmp(RecvReg.flag, "lookfile", 8) == 0)   //客户端从服务器下载文件
		{
			char Down_Filename[FILE_NAME];
			DIR *dp = NULL;
			struct dirent *dirp;
			if((dp = opendir("/root/server/dai")) == NULL)    //查找并输出当前文件夹下的所有文件 //此路径可以根据自己需要修改
				printf("cannot open\n");
			while((dirp = readdir(dp)) != NULL)
			{
				printf("%s\n",dirp->d_name);
				strc
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值