l******n 发帖数: 9344 | 1 C++需要设计一个client,这个client先向server发送request,server会把一套复杂的
data format给client,然后client让server开始发送数据,client收到数据然后开始
处理。
过程中需要对收到的数据做检验,也就是通过把client收到的数据写到文
件里边。这个怎么实现?现在想到的就是fork一下
比如我有个这样的service在run,现在我需要有功能
service 1481306473 > data_1481306473
这样就把1481306473时候接收的数据写到文件 |
g****u 发帖数: 252 | 2 "通过命令把client收到命令收到的数据"
这是什么鬼?
【在 l******n 的大作中提到】 : C++需要设计一个client,这个client先向server发送request,server会把一套复杂的 : data format给client,然后client让server开始发送数据,client收到数据然后开始 : 处理。 : 过程中需要对收到的数据做检验,也就是通过把client收到的数据写到文 : 件里边。这个怎么实现?现在想到的就是fork一下 : 比如我有个这样的service在run,现在我需要有功能 : service 1481306473 > data_1481306473 : 这样就把1481306473时候接收的数据写到文件
|
b***s 发帖数: 117 | 3 我感觉这个有点象jaxb xsd的一套,xsd定义数据结构,jaxb做marshall, unmashall |
c****3 发帖数: 10787 | 4 这和http或者ftp客户端发送和接受一个文件本质是一样的,数据就是文件,是二进制
的罢了
【在 l******n 的大作中提到】 : C++需要设计一个client,这个client先向server发送request,server会把一套复杂的 : data format给client,然后client让server开始发送数据,client收到数据然后开始 : 处理。 : 过程中需要对收到的数据做检验,也就是通过把client收到的数据写到文 : 件里边。这个怎么实现?现在想到的就是fork一下 : 比如我有个这样的service在run,现在我需要有功能 : service 1481306473 > data_1481306473 : 这样就把1481306473时候接收的数据写到文件
|
g****t 发帖数: 31659 | 5 收发email可以吗?把你的client server前面都加个email,就清楚了吧?
应该有现成的收发email处理的库吧
【在 l******n 的大作中提到】 : C++需要设计一个client,这个client先向server发送request,server会把一套复杂的 : data format给client,然后client让server开始发送数据,client收到数据然后开始 : 处理。 : 过程中需要对收到的数据做检验,也就是通过把client收到的数据写到文 : 件里边。这个怎么实现?现在想到的就是fork一下 : 比如我有个这样的service在run,现在我需要有功能 : service 1481306473 > data_1481306473 : 这样就把1481306473时候接收的数据写到文件
|
g****t 发帖数: 31659 | 6 In many cases, I think email is THE ONLY best way for files/data auto
transfer and processing.
(1)
All company already have a solid email server system.
(2)
ftp/ http 会跟公司防火墙乱搞,corner cases 处理不完。
我们公司的http政策,多年积累下来,已经无法理清了
【在 c****3 的大作中提到】 : 这和http或者ftp客户端发送和接受一个文件本质是一样的,数据就是文件,是二进制 : 的罢了
|
c****3 发帖数: 10787 | 7 现在还有SFTP,就是SSH上的文件传输协议,只要开一个端口22就够了,防火墙友好。
可以传文件和目录,不像http没法传多个文件
【在 g****t 的大作中提到】 : In many cases, I think email is THE ONLY best way for files/data auto : transfer and processing. : (1) : All company already have a solid email server system. : (2) : ftp/ http 会跟公司防火墙乱搞,corner cases 处理不完。 : 我们公司的http政策,多年积累下来,已经无法理清了
|
l******n 发帖数: 9344 | 8 我这个client直接把data dump到kafka,本身不保存任何的数据
【在 c****3 的大作中提到】 : 这和http或者ftp客户端发送和接受一个文件本质是一样的,数据就是文件,是二进制 : 的罢了
|
c****3 发帖数: 10787 | 9 脑子别那么死,临时文件删了,不就是不保存数据。
你的要求,其实和各种文件传输协议是一样的。
【在 l******n 的大作中提到】 : 我这个client直接把data dump到kafka,本身不保存任何的数据
|
j********g 发帖数: 61 | 10 如果用C++,性能要求不高的情况下,fork + socket,定时flush一下。
我猜测你是想要先协议出数据格式,然后再存。如果数据格式不是标准的,要转换成标
准格式。
python是不是更有好些,轮子也多。 |
|
|
l******n 发帖数: 9344 | 11 嗯,是这样的
麻烦的数据格式在传输中会发生改变,所以得到的数据可能会是junk
现在想监控一下,避免这种情况发生
【在 j********g 的大作中提到】 : 如果用C++,性能要求不高的情况下,fork + socket,定时flush一下。 : 我猜测你是想要先协议出数据格式,然后再存。如果数据格式不是标准的,要转换成标 : 准格式。 : python是不是更有好些,轮子也多。
|
c****3 发帖数: 10787 | 12 用加密文件传输协议,这些协议都设计有数据校验的,自己搞这些多麻烦,你得自己设
计一套迷你文件传输协议
【在 l******n 的大作中提到】 : 嗯,是这样的 : 麻烦的数据格式在传输中会发生改变,所以得到的数据可能会是junk : 现在想监控一下,避免这种情况发生
|
S***s 发帖数: 104 | 13 you should ask server to send AVRO if it's expected schema evolution
this doesn't look very complicated once you solve data de/serialization
typical kafka data pipeline
【在 l******n 的大作中提到】 : 嗯,是这样的 : 麻烦的数据格式在传输中会发生改变,所以得到的数据可能会是junk : 现在想监控一下,避免这种情况发生
|
l******n 发帖数: 9344 | 14 关键是不知道什么时候数据会发生改变,难道要不停的request data format然后再
decode?这样效率很低下。否则就只有一个client专门接收data format,收到新的数据
格式,然后传给另外一个只接受数据的client使用。
【在 S***s 的大作中提到】 : you should ask server to send AVRO if it's expected schema evolution : this doesn't look very complicated once you solve data de/serialization : typical kafka data pipeline
|
l******n 发帖数: 9344 | 15 protocol是直接用的IEEE的定义好的,也有crc,加密现在不考虑。
【在 c****3 的大作中提到】 : 用加密文件传输协议,这些协议都设计有数据校验的,自己搞这些多麻烦,你得自己设 : 计一套迷你文件传输协议
|
c****3 发帖数: 10787 | 16 你自己得说清楚,数据改变是传输引起的,还是什么其它引起的。
传输引起的,CRC如果不够,加密协议设计就是为了防止中间人改数据,有校验的,更
可靠。
你自己搞,还得远端传原始校验数据,否则你怎么知道数据改了,这就是迷你传输协议
【在 l******n 的大作中提到】 : protocol是直接用的IEEE的定义好的,也有crc,加密现在不考虑。
|
l******n 发帖数: 9344 | 17 是数据源的变动造成的
【在 c****3 的大作中提到】 : 你自己得说清楚,数据改变是传输引起的,还是什么其它引起的。 : 传输引起的,CRC如果不够,加密协议设计就是为了防止中间人改数据,有校验的,更 : 可靠。 : 你自己搞,还得远端传原始校验数据,否则你怎么知道数据改了,这就是迷你传输协议
|
c****3 发帖数: 10787 | 18 这种你得自己设计校验协议,传多少数据校验一次,服务器端的校验数据怎么传,是附
在原始数据末端,还是通过另外通道。也根本不用写文件,直接在内存校验就可以。
所谓校验,也不见得是真的校验,就是检查数据类型是不是你想要的
【在 l******n 的大作中提到】 : 是数据源的变动造成的
|
S***s 发帖数: 104 | 19 AVRO format embed schema used to generate data
so you should have no problem parsing it on receiving end
【在 l******n 的大作中提到】 : 是数据源的变动造成的
|
e*******o 发帖数: 4654 | 20 server都把数据format给你了
你要做的就是很根据format 来动态改变你的parser
难点在不再传输 在于你这个format 有多变态
如果太复杂 你就把server给你的format 和数据保存到一起
另一个程序负责来处理数据 处理完成无误删掉 这样万一新format handle不了 你可以
介入手动改parser.
【在 l******n 的大作中提到】 : C++需要设计一个client,这个client先向server发送request,server会把一套复杂的 : data format给client,然后client让server开始发送数据,client收到数据然后开始 : 处理。 : 过程中需要对收到的数据做检验,也就是通过把client收到的数据写到文 : 件里边。这个怎么实现?现在想到的就是fork一下 : 比如我有个这样的service在run,现在我需要有功能 : service 1481306473 > data_1481306473 : 这样就把1481306473时候接收的数据写到文件
|
|
|
l******n 发帖数: 9344 | 21 数据是device上产生的,遵守定义好的protocol,没有schema
【在 S***s 的大作中提到】 : AVRO format embed schema used to generate data : so you should have no problem parsing it on receiving end
|
j********g 发帖数: 61 | 22 有点儿迷惑了。如果是数据采集就有错了,定义好protocol也没有用呀。CRC这些是防
止传输出错。
难道是device上的软件错误? |
b***i 发帖数: 3043 | 23 不同这个要求和fork有啥关系呢?
【在 j********g 的大作中提到】 : 如果用C++,性能要求不高的情况下,fork + socket,定时flush一下。 : 我猜测你是想要先协议出数据格式,然后再存。如果数据格式不是标准的,要转换成标 : 准格式。 : python是不是更有好些,轮子也多。
|