private void StartReceivingData(string ipAddress, int iPort)
{
try
{
if (!_bContinueReciving)
{
//initializeMainSocket(ipAddress, iPort);
_mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);//<------HERE IS RAISED THE EXCEPTION
_mSocket.Bind(new IPEndPoint(IPAddress.Parse(ipAddress), iPort));
// _mSocket.Bind(new IPEndPoint(IPAddress.Loopback, iPort));
_mSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);
_mSocket.IOControl(IOControlCode.ReceiveAll, new byte[4] { 1, 0, 0, 0 }, new byte[4] { 0, 0, 0, 0 });
//var 1
_mSocket.BeginReceive(_buffReceivedData, 0, _buffReceivedData.Length, SocketFlags.None,
new AsyncCallback(OnReceive), null);
initializeLocalSocket();
}
else
{
_bContinueReciving = false;
_mSocket.Close();
}
}
catch (Exception exception)
{
Debug.WriteLine(exception);
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么......它有效,现在却没有.有人能帮助我吗?我正在使用vlc进行流式传输,我不会收到数据包,做一些报告,然后在本地重新播放一个播放器
[该]播放器同样适用于本地和远程媒体文件
但是,AVAudioPlayer的文档说明如下:
Apple建议您使用此类进行音频播放,除非您正在播放从网络流捕获的音频
对于我正在做的工作,我需要一些AVAudioPlayer的功能,但我的所有音频都在流式传输.AVAlayer没有的AVAudioPlayer主要需要的是"播放"属性.没有该属性,很难构建一个玩家UI.
那么AVPlayer和AVAudioPlayer之间的区别是什么让后者不适合网络流?有没有办法从AVAlayer获得AVAudioPlayer提供的一些信息,如"播放"属性?
我正在开发一个使用大型MySQL表的spring应用程序.当加载大表时,我得到一个OutOfMemoryException,因为驱动程序试图将整个表加载到应用程序内存中.
我试过用
statement.setFetchSize(Integer.MIN_VALUE);
Run Code Online (Sandbox Code Playgroud)
但是我打开的每个ResultSet都会挂起close(); 在线查找我发现这是因为它在关闭ResultSet之前尝试加载任何未读的行,但事实并非如此:
ResultSet existingRecords = getTableData(tablename);
try {
while (existingRecords.next()) {
// ...
}
} finally {
existingRecords.close(); // this line is hanging, and there was no exception in the try clause
}
Run Code Online (Sandbox Code Playgroud)
挂起也发生在小表(3行)上,如果我不关闭RecordSet(发生在一个方法中)然后connection.close()挂起.
堆栈跟踪挂起:
SocketInputStream.socketRead0(FileDescriptor,byte [],int,int,int)行:不可用[native method]
SocketInputStream.read(byte [],int,int)行:129
ReadAheadInputStream.fill(int)行:113
ReadAheadInputStream. readFromUnderlyingStreamIfNecessary(byte [],int,int)行:160
ReadAheadInputStream.read(byte [],int,int)行:188
MysqlIO.readFully(InputStream,byte [],int,int)行:2428 MysqlIO.reuseAndReadPacket(Buffer ,int)行:2882
MysqlIO.reuseAndReadPacket(Buffer)行:2871
MysqlIO.checkErrorPacket(int)行:3414
MysqlIO.checkErrorPacket()行:910
MysqlIO.nextRow(Field [],int,boolean,int,boolean,boolean, boolean,Buffer)行:1405
RowDataDynamic.nextRecord()行:413
RowDataDynamic.next()行:392 RowDataDynamic.close()行:170
JDBC4ResultSet(ResultSetImpl).realClose(boolean)行:7473 JDBC4ResultSet(ResultSetImpl).close( )line:881 DelegatingResultSet.close()行:152
DelegatingResultSet.close()行:152
DelegatingPreparedStatement(DelegatingStatement).clo se()行:163
(这是我的类)Database.close()行:84
我正在开发一个与RackSpace cloudfiles通信的Ruby on Rails应用程序(类似于Amazon S3但缺少某些功能).
由于缺乏每对象访问权限和查询字符串身份验证的可用性,因此必须通过应用程序调解用户下载.
在Rails 2.3中,看起来您可以动态构建响应,如下所示:
# Streams about 180 MB of generated data to the browser.
render :text => proc { |response, output|
10_000_000.times do |i|
output.write("This is line #{i}\n")
end
}
Run Code Online (Sandbox Code Playgroud)
(来自http://api.rubyonrails.org/classes/ActionController/Base.html#M000464)
而不是10_000_000.times...我可以在那里转储我的cloudfiles流生成代码.
麻烦的是,这是我在Rails 3中尝试使用这种技术时得到的输出.
#<Proc:0x000000010989a6e8@/Users/jderiksen/lt/lt-uber/site/app/controllers/prospect_uploads_controller.rb:75>
Run Code Online (Sandbox Code Playgroud)
看起来可能call没有调用proc对象的方法?还有其他想法吗?
我正在创建一个客户端/服务器音频系统,它可以通过网络任意传输音频.一个中央服务器泵出音频流,x个客户端接收音频数据并播放它.到目前为止还没有任何魔法需要,我甚至可以将这个场景与开箱即用的VLC媒体播放器配合使用.
然而,棘手的部分似乎是同步音频回放,以便所有客户端都处于可听同步状态(只要感知到人类听众同步,就可以允许实际等待时间).
我的问题是,是否有任何已知的方法或算法用于此类同步问题(视频可能以相同的方式解决).我最初的想法围绕在物理机器之间同步时钟,从而创建一个虚拟的"主计时器",并以某种方式对齐音频数据包.
有些产品已经解决了这个问题(但对我的整体用例来说仍然不够):
任何指针都是最受欢迎的.谢谢.
PS:这个相关的问题似乎很久以前就已经死了.
我正在使用套接字作为MediaPlayer的代理,因此我可以在将mp3音频写入套接字之前下载并解密它.这类似于NPR新闻应用程序中显示的示例,但是我将其用于所有Android版本2.1 - 4 atm.
NPR StreamProxy代码 - http://code.google.com/p/npr-android-app/source/browse/Npr/src/org/npr/android/news/StreamProxy.java
我的问题是2.1-2.3的播放速度很快,但在Android 4.0 ICS中,MediaPlayer在触发onPrepared监听器之前会缓冲太多数据.
在onPrepared()之前写入Socket OutputStream的示例数据量:
在SGS2上有2.3.4 - onPrepared()在~133920字节之后
在Nexus S上使用4.0.4 - onPrepared()在~961930字节之后
这也发生在Galaxy Nexus上.
奇怪的是,4.0模拟器不会像4.0设备一样缓冲数据.有人在ICS上遇到与MediaPlayer类似的问题吗?
编辑
以下是代理如何写入套接字.在这个例子中,它来自从文件加载的CipherInputStream,但是当它从HttpResponse加载时也是如此.
final Socket client = (setup above)
// encrypted file input stream
final CipherInputStream inputStream = getInputStream(file);
// setup the socket output stream
final OutputStream output = client.getOutputStream();
// Writing the header
final String httpHeader = buildHttpHeader(file.length());
final byte[] buffer = httpHeader.getBytes("UTF-8");
output.write(buffer, 0, buffer.length);
int writtenBytes = 0;
int readBytes;
final byte[] buff = new …Run Code Online (Sandbox Code Playgroud) 如何直播视频从iPhone到服务器,如Ustream或Qik?我知道苹果有一种叫做Http Live Streaming的东西,但我发现的大多数资源都只谈到从服务器到iPhone的视频流.
Apple的Http Living Streaming是我应该使用的吗?或者是其他东西?谢谢.
我正在寻找在Streams上应用正则表达式的快速而安全的方法.
我在互联网上找到了一些关于将每个缓冲区转换为String然后应用于Regex字符串的示例.
这种方法有两个问题:
RegexStreams ,肯定可以避免.Regex支持:Regex模式有时只有在将两个缓冲区组合在一起时才能匹配(缓冲区1以匹配的第一部分结束,缓冲区2以匹配的第二部分开始).转换为字符串的方式无法原生地处理这种类型的匹配,我必须提供更多信息,例如模式可以匹配的最大长度,这根本不支持+和*正则表达式标志,并且永远不会支持(无限制匹配)长度).因此,转换为字符串的方式并不快,并且不完全支持Regex.
是否有任何方法/库可用于Regex在Streams 上应用而无需转换为字符串并具有完整的Regex支持?
如何使用Scala Stream读取大型CSV文件(> 1 Gb)?你有代码示例吗?或者您是否会使用不同的方式来读取大型CSV文件而不先将其加载到内存中?
似乎两个协议都做同样的事情,但是一个优势是否优于另一个?