当前博客:06、桌面端TCP之服务端发送文件给客户端

98 次浏览【转载需注明来源】

博客作者:【快码FOF编程】

个性签名:寒窗苦读十年一朝凤舞九天

在上一章节中讲解了客户端向服务端发送文件,那么服务端向客户端发送文件其实也是一样的原理;一段略微更改后的服务端向客户端发送文件的代码如下:

调试器窗口类.打开调试器窗口();
变量 服务端 = TCP服务端.创建TCP服务({ "端口": 3000, "地址": "0.0.0.0", "最大连接数": 1000, "是否组包": 真 }, (反馈信息) => {
	如果 (反馈信息["状态"] == "收到数据") {
	    返回 {"是否反馈":true,"反馈数据":发送数据给客户端("文件地址"),"是否断开":假}
	}
});
变量 客户端句柄 = TCP客户端.连接服务器({ "端口": 3000, "地址": "127.0.0.1" }, (反馈信息) => {
	如果 (反馈信息["状态"] == "收到数据") {
		局部变量 收到数据 = 反馈信息["数据内容"];
		收到数据 = 缓冲区类.缓冲区数据转数组(收到数据);
		局部变量 客户标识 = "我是唯一标识";
		如果 (收到数据[0] == 123 && 收到数据[1] == 124 && 收到数据[2] == 125) {
			数据组包类.新建组包(客户标识, [123, 124, 125], [123, 124, 125]);
			数据组包类.新增包数据(客户标识, 收到数据);
		} 否则 {
			数据组包类.新增包数据(客户标识, 收到数据);
		}
		如果 (数据组包类.是否组包完毕(客户标识) == 真) {
			收到数据 = 数据组包类.获取包数据(客户标识);
			数据组包类.清空包数据(客户标识);
			文件操作类.写到文件("保存地址", 收到数据);
		}
	}
});
定义函数 发送数据给客户端(文件地址) {
	局部变量 文件数据 = 文件操作类.读入文件(文件地址, "");
	文件数据 = 缓冲区类.缓冲区数据转数组(文件数据);
	文件数据.插入或删除成员(0, 0, 123, 124, 125);
	文件数据[文件数据.长度] = 123;
	文件数据[文件数据.长度] = 124;
	文件数据[文件数据.长度] = 125;
	文件数据 = 缓冲区类.数组转缓冲区数据(文件数据);
	返回 文件数据;
}
定义函数 发送信息给服务端(参数) {
	TCP客户端.发送数据(客户端句柄, "你好服务端");
}

可以看见,原理与客户端向服务端发送文件一摸一样,只不过服务端的组包代码被放在了TCP客户端的代码区域而已;同时由于不像服务端那样会有多个客户访问,客户端的标识一般随便给一个就行。

 

至此TCP的知识就算差不多完结了;后续我们还会带领大家实际的去进行在云服务器上部署快码的TCP程序,让所有的用户都可以访问您的服务端进行数据交互,进行真正的云端开发实战

默认排序
Generic placeholder image
Generic placeholder image
快码FOF编程 Time: 2023-05-13 10:07:17

同学们,至此TCP的知识就算差不多完结了;后续我们还会带领大家实际的去进行云服务器的部署,进行真正的云端开发实战


06、桌面端TCP之服务端发送文件给客户端