草庐IT

fileDescriptors

全部标签

c - C 中的 Select() 问题(Windows 7)

我正在尝试创建一个服务器,它使用select()来处理多个客户端,而不是我已经完成的多线程。但是select()似乎什么也没做?我有所有必要的系统调用,例如socket()返回一个名为listener的int。bind()然后是listen(),所有这些都带有适当的错误检查,不会返回任何问题。它也编译得很好。FD_ZERO(&fileDescriptors);FD_ZERO(&tempSet);.....FD_SET(listener,&fileDescriptors);fdmax=listener;.....while(1){if(select(fdmax+1,&tempSet,NU

android - 如何在 Android 中使用 JNI 将 Assets FileDescriptor 正确传递给 FFmpeg

我正在尝试使用FFmpeg、JNI和Java在Android中检索元数据FileDescriptor而且它不起作用。我知道FFmpeg支持pipeprotocol所以我试图以编程方式模拟:“cattest.mp3|ffmpegipipe:0”。我使用以下代码从与Android应用程序bundle在一起的Assets中获取FileDescriptor:FileDescriptorfd=getContext().getAssets().openFd("test.mp3").getFileDescriptor();setDataSource(fd,0,0x7ffffffffffffffL);

android - 如何将 FileDescriptor 与 HTTP URL 一起使用

我希望这能够让Android的MediaPlayer使用身份验证从URL流式传输,但现在我不太确定。我没有问题让它从开放服务器流式传输(无身份验证),但我看不到任何方式告诉MediaPlayer使用基本身份验证,除非可能使用FileDescriptor争论有效吗?所以我尝试了这个但得到了以下错误:IllegalArgumentException:ExpectedfileschemeinURIhttp://www.myserver.com/music.mp3我的代码看起来像这样:Filef=newFile(newURL("http://www.myserver.com/music.mp3

c++ - 如何在主进程和线程之间使用 Unix 管道?

每当信号从线程到达主进程时,我都试图通过管道传输数据。这可能吗?如何做到这一点?问题:子线程读取数据并将其放入队列。主应用程序做自己的事情,但是,当队列中有可用数据时,线程应通知它并开始处理数据(主线程可以访问队列)。这个场景应该如何实现? 最佳答案 是的,它可以通过管道。第一步调用pipe得到一个管道:#includeintmain(...){intfileDescriptors[2];pipe(fileDescriptors);第2步将fileDescriptors[0]传递给主进程,并将fileDescriptors1到线程。

Android开发,VPNService.buider中的FileDescriptor不能读写

我正在尝试使用Android4.xVPN服务与内部以太网服务器建立VPN隧道。IP地址是Internet上的全局ip。现在问题是:1.我使用TCPdump抓包,VPNService.build建立后,没有一个tcp包可以在之前连接到服务器的隧道中传输。2.构建建立后,我得到一个fileDescriptor,它不能写入任何字节(EINVAL错误),也不能读取任何字节(长度=0)。3.我使用sockettunnel与服务器通信,发送PPTP包,经过start-control-request,outgoing-call-request,服务器返回正确的信息,然后通过PPPLCP协议(prot

android - MediaPlayer setDataSource,最好用path还是FileDescriptor?

假设我有一个文件的完整路径。将该文件加载到MediaPlayer中的更好方法是什么?StringfilePath="somepath/somefile.mp3";mediaPlayer.setDataSource(filePath);或StringfilePath="somepath/somefile.mp3";Filefile=newFile(filePath);FileInputStreaminputStream=newFileInputStream(file);mediaPlayer.setDataSource(inputStream.getFD());inputStream.c

android - MediaPlayer setDataSource,最好用path还是FileDescriptor?

假设我有一个文件的完整路径。将该文件加载到MediaPlayer中的更好方法是什么?StringfilePath="somepath/somefile.mp3";mediaPlayer.setDataSource(filePath);或StringfilePath="somepath/somefile.mp3";Filefile=newFile(filePath);FileInputStreaminputStream=newFileInputStream(file);mediaPlayer.setDataSource(inputStream.getFD());inputStream.c

android - FileDescriptor在Android中的实际系统文件描述符(作为int)

有没有办法从Android的FileDescriptor对象获取系统文件描述符(套接字或文件号作为int)?我想直接在JNI代码中访问文件描述符,而不使用任何Java包装器。编辑:我找到了getParcelFileDescriptorFD并且FileDescriptor具有名为“descriptor”的int字段,示例用法在media/jni/android_media_MediaPlayer.cpp中,func定义在frameworks/base/core/jni/android_util_Binder.cpp,字段本身在libcore/luni/src/main/java/java

android - 调用setDataSource(FileDescriptor)方法时出现异常(失败。: status=0x80000000)

我正在开发一个视频流应用程序,但在使用FileDescriptor调用setsetDataSource时遇到了问题。我希望我的应用程序在下载视频时播放视频,所以一旦我获得最小字节数,我会将这些字节移动到另一个文件中,以便在下载原始文件时可以在另一个文件中播放。所以,我检查是否可以像这样启动每个数据包的媒体播放器:if(mediaPlayer==null){//OnlycreatetheMediaPlayeroncewehavetheminimum//buffereddataif(totalKbRead>=INTIAL_KB_BUFFER){try{startMediaPlayer();