草庐IT

stream_buffer

全部标签

java - 谷歌 Protocol Buffer (Java 到 C++)

我正在尝试在Java和C++之间设置TCP/IP套接字连接,在Windows上使用Java,在RaspberryPi上使用C++。正在传输的消息是GoogleProtocolBuffer消息,其原型(prototype)设置如下:packagepackage_name;messageWin2Pi{optionalint32num1=1;optionalint32num2=2;optionalint32num3=3;optionalint32num4=4;optionalboollogic1=5;optionalboollogic2=6;optionalboollogic3=7;opti

sockets - 为什么 skb_buffer 需要跳过 20 个字节才能在数据包输入时读取传输缓冲区?

我正在Linux中编写一个网络模块,我看到只有从skb缓冲区跳过20个字节后才能提取tcpheader,即使API是“skb_transport_header”。其背后的原因是什么?有人可以详细解释一下吗?传出数据包不需要同样的。我知道在接收数据包时,当数据包从L1流向L5时,header会被删除。但是,当数据包传出时,会添加header。这在这里有何不同?/**对于输入包**/structtcphdr*tcp;tcp=(structtcphdr*)(skb_transport_header(skb)+20);/**对于传出数据包**/structtcphdr*tcp;tcp=(str

c++ - TCP 套接字 : Where does incoming data go after ack(leaves tcp read buffer) but before read()/recv()?

如果我有一个以200KB/秒的速度传输数据的TCP连接,但我每秒只从套接字read()/recv()一次,那么在哪里那些200KB的数据同时存储?据我所知,数据在ack发送给发送方后离开TCP套接字的读取缓冲区,而且它太小了,无法容纳200KB的数据,同时它在哪里等待,直到它可以被我的客户读取()/recv()?谢谢!!以下答案声称数据在被read()/recv()d之前一收到ACK就离开TCP读取缓冲区:https://stackoverflow.com/a/12934115/2378033“接收器的套接字接收缓冲区的大小决定了在没有确认的情况下可以传输多少数据”会不会是我的假设是错

scala - 使用 TCP 流并将其重定向到另一个 Sink(使用 Akka Streams)

我尝试使用Akka2.4.3将TCP流重定向/转发到另一个接收器。该程序应该打开一个服务器套接字,监听传入的连接,然后使用tcp流。我们的发件人不期望/接受我们的回复,所以我们从不发回任何东西——我们只是消费流。在构建tcp流之后,我们需要将字节转换为更有用的东西并将其发送到接收器。到目前为止,我尝试了以下方法,但我特别纠结于如何不将tcp数据包发送回发送方以及如何正确连接接收器的部分。importscala.util.Failureimportscala.util.Successimportakka.actor.ActorSystemimportakka.event.Loggingi

php - 如何使 Php stream_socket 保持事件状态?

我有一个使用stream_socket_client()的Php应用程序,通过tcp从后端服务器获取数据,但我想保持连接活跃,或者在池中更好,或者避免连接/断开开销。但我不是Php高手,所以我不知道该怎么做。虽然我可能会在几个小时内弄清楚,但我的时间可能更适合花在征求每个人的意见上,所以有什么建议吗? 最佳答案 在创建流时设置STREAM_CLIENT_PERSISTENT标志可防止连接空闲。在内部,该标志使stream_socket_client()调用pfsockopen()(doc)而不是fsockopen()(doc)。连接

c# - Stream.Copy 是否通过管道传输?

假设我正在编写一个tcp代理代码。我正在从传入流中读取并写入输出流。我知道Stream.Copy使用缓冲区,但我的问题是:Stream.Copy方法是在从输入流中获取下一个block时写入输出流,还是像“从输入读取block,将block写入输出,从输入读取block等”这样的循环? 最佳答案 下面是.NET4.5中CopyTo的实现:privatevoidInternalCopyTo(Streamdestination,intbufferSize){intnum;byte[]buffer=newbyte[bufferSize];w

swift - 如何在AR场景运行时提取SceneKit Depth Buffer?

如何提取SceneKit深度缓冲区?我制作了一个运行Metal的基于AR的应用程序,我真的很难找到有关如何提取2D深度缓冲区的任何信息,以便我可以渲染出场景的精美3D照片。非常感谢任何帮助。 最佳答案 你的问题不清楚,但我会尽力回答。VRView的深度传递如果您需要从SceneKit的3D环境渲染深度channel,那么您应该使用,例如,SCNGeometrySource.Semantic结构体。有vertex,normal,texcoord,color和tangent类型属性。让我们看看什么是vertex类型属性是:staticl

ios - WebRTC(iOS): local video is not getting stream on remote side

我正在尝试使用WebRTC制作一个带有音频、视频通话的应用。远程视频和音频在我的应用程序中正常工作,但我的本地流没有出现在客户端。这是我为添加视频轨道而写的letvideoSource=self.rtcPeerFactory.videoSource()letvideoCapturer=RTCCameraVideoCapturer(delegate:videoSource)guardletfrontCamera=(RTCCameraVideoCapturer.captureDevices().first{$0.position==.front}),//choosehighestresle

ios - swift 错误 : fatal error: Cannot index empty buffer

我是Swift语言的新手。我创建了一个MapKit应用程序,它从Sqlite数据库(最新的FMDB堆栈)中递归地检索MKPointAnnotation数据(纬度、日志和标题)。目的是把一堆兴趣点放在一个MKMapViewDelegate上。我尝试过不使用数组,但mapView.addAnnotation会覆盖任何点并仅显示map上的最后一个点,因此我正在尝试使用数组。我已经创建了一个函数,但是当调用wpoint数组时,我在运行时收到错误“fatalerror:无法索引空缓冲区”。代码如下:funcinitializeRoute(){sharedInstance.database!.op

IOS Swift 读取 PCM Buffer

我有一个Android项目,它读取一个short[]数组,其中包含来自麦克风缓冲区的PCM数据以进行实时分析。我需要将此功能转换为iOSSwift。在Android中,它非常简单,看起来像这样......importandroid.media.AudioFormat;importandroid.media.AudioRecord;...AudioRecordrecorder=newAudioRecord(MediaRecorder.AudioSource.DEFAULT,someSampleRate,AudioFormat.CHANNEL_IN_MONO,AudioFormat.ENC