LT_code icon indicating copy to clipboard operation
LT_code copied to clipboard

How to decode from socket...

Open Gaojianli opened this issue 3 years ago • 2 comments

Hello, thanks for your excellent working... I am trying to develop a file server by using this project, but it is a little confusing about how to decode the file from the socket. I write the following code but it seems not working:

char buf[500]
int ret = 0;
int session_num=0;
int index = 0;
while (ret == 0){
        read(sockfd,buf,500);
        ret = m_lt_code->receiveAndDecode(200,buf,session_num,index);
}
m_lt_code->WriteFile("/tmp/test.png",session_num);

Could you please give me a example? Thanks!

Gaojianli avatar Mar 02 '21 05:03 Gaojianli

抱歉,这部分代码我很久没维护了,鉴于我当时的水平,这些代码也只是个半成品,我最近没什么时间重构这个,只能给你一些实现上的建议:

  1. 我提供了一个send_callback,其实你只需要自己基于这个call back实现一个socket发送就好了
  2. 构造函数里是直接输入一个文件,其实从通用性来讲,最好是一个buf,以及lt的码长之类的一系列参数
  3. 如果在socket层面做这个事情,LT的编解码其实是需要配合网络协议来的,你需要自己设计ack机制,比如成功解码后接收端恢复确认信息,或者只是简单仿真性能比如服务端只发送一定数量的数据包,看client是否成功恢复

如果你愿意帮忙完善这部分代码,欢迎提pr,不胜感激

Neo-ZK avatar Mar 02 '21 11:03 Neo-ZK

抱歉,这部分代码我很久没维护了,鉴于我当时的水平,这些代码也只是个半成品,我最近没什么时间重构这个,只能给你一些实现上的建议:

  1. 我提供了一个send_callback,其实你只需要自己基于这个call back实现一个socket发送就好了
  2. 构造函数里是直接输入一个文件,其实从通用性来讲,最好是一个buf,以及lt的码长之类的一系列参数
  3. 如果在socket层面做这个事情,LT的编解码其实是需要配合网络协议来的,你需要自己设计ack机制,比如成功解码后接收端恢复确认信息,或者只是简单仿真性能比如服务端只发送一定数量的数据包,看client是否成功恢复

如果你愿意帮忙完善这部分代码,欢迎提pr,不胜感激

不好意思,写错了,我的问题是如何解码。现在我用一个socket把数据发送出来了了,那么在另一个程序中,我该如何解码数据呢,LTcode对象如何构造呢,receiveAndDecode的后两个参数又应该怎么填写呢,当receiveAndDecode返回1了的时候是不是就可以写会了,writeFile的第二个参数line_num什么意思呢? 抱歉,问题有点多,还望解惑

Gaojianli avatar Mar 03 '21 02:03 Gaojianli