我有2个程序,1个用于发送UDP广播消息,1个用于监听此广播.我的问题是,有时当我发送广播时,接收器会收到2条消息.为什么?
接收者代码:
public class Receiver {
private readonly UdpClient udp = new UdpClient(15000);
private void StartListening()
{
this.udp.BeginReceive(Receive, new object());
}
private void Receive(IAsyncResult ar)
{
IPEndPoint ip = new IPEndPoint(IPAddress.Any, 15000);
byte[] bytes = udp.EndReceive(ar, ref ip);
string message = Encoding.ASCII.GetString(bytes);
StartListening();
}
}
Run Code Online (Sandbox Code Playgroud)
发件人代码:
public class Sender {
public void Send() {
UdpClient client = new UdpClient();
IPEndPoint ip = new IPEndPoint(IPAddress.Broadcast, 15000);
byte[] bytes = Encoding.ASCII.GetBytes("Foo");
client.Send(bytes, bytes.Length, ip);
client.Close();
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个问题,我一直在努力.它与tf.matmul()广播有关,也没有广播.
我在https://github.com/tensorflow/tensorflow/issues/216上发现了类似的问题,但tf.batch_matmul()对我的案例看起来并不像是一个解决方案.
我需要将输入数据编码为4D张量:
X = tf.placeholder(tf.float32, shape=(None, None, None, 100))
第一个维度是批次的大小,第二个维度是批次中的条目数量.您可以将每个条目想象为多个对象的组合(第三维).最后,每个对象由100个浮点值的向量描述.
请注意,我对第二维和第三维使用了None,因为实际大小可能会在每个批次中发生变化.但是,为简单起见,让我们用实际数字来形成张量:
X = tf.placeholder(tf.float32, shape=(5, 10, 4, 100))
这些是我计算的步骤:
计算100个浮点值(例如,线性函数)W = tf.Variable(tf.truncated_normal([100, 50], stddev=0.1))
Y = tf.matmul(X, W)
问题的每个向量的函数
:tf.matmul()使用tf.batch_matmul()
Y的预期形状没有广播和没有成功:(5,10,4,50)
对批次的每个条目应用平均池(在每个条目的对象上):
Y_avg = tf.reduce_mean(Y, 2)
Y_avg的预期形状:(5,10,50)
我预计tf.matmul()会支持广播.然后我发现tf.batch_matmul(),但它看起来仍然不适用于我的情况(例如,W需要至少有3个维度,不清楚为什么).
顺便说一句,上面我使用了一个简单的线性函数(其权重存储在W中).但在我的模型中,我有一个深层网络.因此,我遇到的更普遍的问题是自动计算张量的每个切片的函数.这就是为什么我预期tf.matmul()会有广播行为(如果是这样,tf.batch_matmul()甚至可能根本不需要).
期待向您学习!阿莱西奥
这是我第一次在java中编程网络.我正在寻找一种方式发送到某种方式广播到整个网络中的所有节点.让他们知道我的存在.我正在尝试制作一个多人网络游戏,我希望客户能够看到所有可用的游戏来选择加入哪个游戏.我想知道如何从服务器广播,以及如何让客户端听.
请简单,我是新手:)
提前致谢.
我来自R和Matlab多年的julia,其中矢量化代码是性能的关键,并影响了我的思考.现在,阅读S. Johnson的这篇精彩博客文章"更多点"我确信朱莉娅的句法循环融合是该语言的一个很好的特征,但在移植我以前的矢量化代码时让我有点困惑.
将一些函数矢量化为几个参数是不好/差的形式?- 当我想迭代一个数组时,我是否应该编写所有例程的"标量"版本并调用点版本(或广播/地图)?
为了争论,请说我写下面的内容
function sphere_vol(r)
return 4/3*pi*r^3
end
Run Code Online (Sandbox Code Playgroud)
然后在另一个函数中使用它,
function density(N, r)
V = sphere_vol(r)
return N/V
end
Run Code Online (Sandbox Code Playgroud)
等等(很多函数互相调用).我的直觉(来自其他语言)是在方便时将大多数函数定义为矢量化,如sphere_vol(r) = 4/3*pi*r.^3(微不足道的变化).有没有任何意义,如果我可以自动调用sphere_vol.(r::Array)(或map(sphere_vol, r::Array)?对于单参数函数,这不是一个重要的决定,但对于多个参数,它可以显着改变实现:我可以定义矢量化的density(N, r)矢量化版本以上r,或通过N,或两者(返回矩阵),但它更琐碎写这种方式(需要通过调用内部的广播sphere_vol.()和./),在R和Matlab的我做出了这个选择对案件逐案基础上与此妥协:
矢量化更方便,更有效:我可以调用density(N::Vector, r::Vector)一次并获得完整的数组值.
在几个参数上写一个矢量化函数很快变得很麻烦和/或难以管理(2个参数通常可以用一些技巧); 特别是当返回值不是标量时.
在朱莉娅实施新功能时,我不知道如何进行判断.
如果说在朱莉娅,我最好只编写上面的"标量"版本吗?或者,如果对某些参数进行矢量化(例如Bessel,它调用Fortran例程的特殊函数),某些例程会更有效吗?我猜测有一个微妙的平衡(根据品味/风格,但也),但与R或Matlab相比,对性能的影响要小得多.
我想将一个实时视频广播设施插入一个网站.我打算使用silverlight和C#,但我在这个主题上非常新手.
做这个的最好方式是什么?
提前致谢.
更新:
我有一台相机.我想要它捕获它并在我的网站上显示.生活.但我不知道我必须在里面做些什么.告诉我有关捕获,流,api,dll以及我需要知道的任何其他内容的所有信息.谢谢.
我正在尝试在IP地址"255.255.255.255"上发送UDP广播,以便在我的网络中进行设备发现.程序执行,但我在Wireshark中看不到任何内容.当我将IP地址更改为网络中的已知IP时,我可以在Wireshark中看到数据包.这是怎么回事 ?
这是我的代码:
public static void main(String args[]) throws Exception
{
String Broadcastaddress = new String("255.255.255.255");
int port = 9876;
DatagramSocket serverSocket = new DatagramSocket();
serverSocket.setBroadcast(true);
InetAddress IPAddress = InetAddress.getByName(Broadcastaddress);
System.out.println("Sending Discovery message to " + IPAddress + "Via UDP port " + port);
byte[] sendData = new byte[4];
sendData[0] = 'F';
sendData[1] = 'I';
sendData[2] = 'N';
sendData[3] = 'D';
DatagramPacket sendPacket = new DatagramPacket(sendData,sendData.length,IPAddress,port);
while (true)
{
serverSocket.send(sendPacket);
System.out.println("Packet sent");
}
}
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我设置了一个警报
AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
...
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
...
alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent);
Run Code Online (Sandbox Code Playgroud)
它工作正常,除非我关闭并打开手机.
更具体地说,让我们说在10:20,我将闹钟设置为10:22,然后在10:21关闭并打开电话,闹钟将无效.
可能是什么问题?这是pendingIntent的广播问题还是应该设置alarmManager对象的一些标志,以便它在这样的条件下工作?
我正在为Android和iOS开发社交应用程序,iOS和Server工作已经开始.
我们的应用需要使用我们的应用向最终用户广播实时音频/视频.我们尝试过使用RED5和WOWZA设置服务器.
在iOS中我们遇到了来自RED5 iOS SDK的广播公司的崩溃,错误的框架所以我们搬到了WOWZA的试用版
在实施了适用于iOS的WOWZA GoCoder SDK之后,我们发现它的许可证对我来说太贵了8000美元+ 2000美元/年维护:(
午夜编码器似乎从评论中出错(我还没有将它用于广播客户端)
任何人都可以推荐我使用好的iOS SDK或一些自定义方式来实现我的移动相机的直播流媒体.
任何帮助将受到高度赞赏.谢谢
我试图在两个3D阵列上播放">"的简单操作.一个具有另一个维度(m,1,n)(1,m,n).如果我改变第三维(n)的值,我会天真地期望计算的速度将缩放为n.
然而,当我尝试明确地测量它时,我发现当将n从1增加到2时,计算时间增加约10倍,之后缩放是线性的.
当从n = 1到n = 2时,为什么计算时间会急剧增加?我假设它是numpy中的内存管理工件,但我正在寻找更具体的内容.
代码附在下面,附带结果图.
import numpy as np
import time
import matplotlib.pyplot as plt
def compute_time(n):
x, y = (np.random.uniform(size=(1, 1000, n)),
np.random.uniform(size=(1000, 1, n)))
t = time.time()
x > y
return time.time() - t
a = [
[
n, np.asarray([compute_time(n)
for _ in range(100)]).mean()
]
for n in range(1, 30, 1)
]
a = np.asarray(a)
plt.plot(a[:, 0], a[:, 1])
plt.xlabel('n')
plt.ylabel('time(ms)')
plt.show()
Run Code Online (Sandbox Code Playgroud)
广播操作的时间图
我有一个使用Microsoft.expression.encoder和framework 4.0播放视频的WPF应用程序,但我在播放时有15秒的延迟.有任何建议减少广播时的延迟.
以下是守则
using Microsoft.Expression.Encoder.Live;
using Microsoft.Expression.Encoder;
private void button1_Click(object sender, RoutedEventArgs e)
{
try
{
EncoderDevice video = null;
EncoderDevice audio = null;
GetSelectedVideoAndAudioDevices(out video, out audio);
StopJob();
if (video == null)
{
return;
}
StopJob();
_job = new LiveJob();
if (video != null && audio != null)
{
//StopJob();
_deviceSource = null;
_deviceSource = _job.AddDeviceSource(video, audio);
_job.ActivateSource(_deviceSource);
// Finds and applys a smooth streaming preset
//_job.ApplyPreset(LivePresets.VC1HighSpeedBroadband4x3);
// Creates the publishing format for the job
PullBroadcastPublishFormat format = new …Run Code Online (Sandbox Code Playgroud) broadcasting ×10
c# ×3
java ×2
udp ×2
alarmmanager ×1
android ×1
broadcast ×1
client ×1
expression ×1
ios ×1
julia ×1
networking ×1
numpy ×1
numpy-ufunc ×1
python ×1
silverlight ×1
tensorflow ×1
wpf ×1