背景:我正在编写一个简单的UDP应用程序来ping我测试服务器,我每隔一分钟左右就会告诉我它仍然正常运行(我无法在服务器上为那些想知道的人启用ping).我计划在手机上运行此功能,以便在服务器不再响应时发出警告.
我正在尝试使用看似简单的java.net.DatagramSocket:
try
{
socket = new DatagramSocket();
socket.bind(null);
}
catch (SocketException e)
{
System.out.println(e.toString());
throw e;
}
Run Code Online (Sandbox Code Playgroud)
我还说我已经通过android清单启用了Internet权限,如果我删除uses子句这样做,我会收到权限错误,所以我确信它工作正常.当我将此代码下载到Android虚拟设备(AVD)并执行它时,在调用bind()时,我遇到了以下异常:
03-17 19:07:39.401:INFO/System.out(338):java.net.BindException:参数无效
根据此文档,null参数是正确的:
public void bind(SocketAddress localAddr)
自:API级别1
将此套接字绑定到localAddr指定的本地地址和端口.如果此值为null,则使用有效本地地址上的任何空闲端口.
但不信任文档,我决定在我的设备上枚举IP地址,如下所示:
ArrayList<NetworkInterface> allInterfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
NetworkInterface eth = allInterfaces.get(0);
InetSocketAddress addr = new InetSocketAddress(eth.getInetAddresses().nextElement(), port);
try
{
socket = new DatagramSocket();
socket.bind(addr);
}
catch (SocketException e)
{
System.out.println(e.toString());
throw e;
}
Run Code Online (Sandbox Code Playgroud)
当我单步执行代码时,它工作得很好,我可以看到AVD上的两个IP地址,但我在bind()调用上得到完全相同的异常.有没有人看到我可能会失踪的?我将继续研究并希望为我自己的问题发布一个解决方案,但我希望有人能够为我提供快捷方式.
我正在重温我的一个旧线索.
我想启动一堆线程,每个线程执行相同的任务,并在每次完成时知道main(),如果成功或失败.
提供的解决方案是使用ConcurrentQueue,但其他帖子建议使用BackgroundWorker类或线程池.
有明确的答案吗?
同样,所有线程执行相同的代码并具有通过/失败结果.我希望运行的线程超过可用的线程,所以只要一个线程完成,我就会尽快启动另一个 - 我希望tehm尽可能地强调远程系统(reather而不是强调我的本地PC有太多的线程,所以我会需要进行实验以确定最佳线程数).
VB .NET的具体答案,但也欢迎一般的线程建议.
我不熟悉计数器缓存的概念,并且在我的应用程序主页上有一些天文加载时间,我相信我需要继续它.
我需要实现的大多数计数器缓存都附加了某些(简单)条件.例如,这是一个常见的查询:
@projects = employee.projects.where("complete = ?", true).count
Run Code Online (Sandbox Code Playgroud)
N+1当我显示一个列出公司每个员工的项目计数的表单时,我遇到了上面的查询问题.
我真的不知道我在做什么,所以请指正!
# new migration
add_column :employees, :projects_count, :integer, :default => 0, :null => false
# employee.rb
has_many :projects
# project.rb
belongs_to :employee, :counter_cache => true
Run Code Online (Sandbox Code Playgroud)
迁移后...是我需要做的吗?
我如何在我提到的条件下工作,以尽量减少加载时间?
在VS 2010中加载它会引发许多错误,尽管它最终会(虽然是部分加载).
此外,Windows根本无法识别.PROJ文件,我在/ src文件夹中打开了.SLN文件,但在VS web express 2010中加载时出现了大量错误.这是问题吗?我需要完整版VS 2010吗?
Java中的并行数组是否有任何实际用例?维护相互关联的N个阵列似乎太麻烦了.
例:
int ages[] = {0, 17, 2, 52, 25};
String names[] = {"None", "Mike", "Billy", "Tom", "Stan"};
int parent[] = {0, 3, 1, 0, 3};
Run Code Online (Sandbox Code Playgroud)
我可以创建一个Person类并将对象存储在一个单独的数组中.会贵一点,但更容易使用吗?
我知道有两种设置活动标题的方法.一种方法是在android清单中设置它,如android:label ="@ string/app_name".第二个是在活动类中以编程方式设置,如setTitle("Hello World!").两种方式都位于左侧,但我如何将其放在中心?
我将代码片段分成了一个,DLL因为它会经常更新,这样就可以更容易部署.
但我对我能做什么以及我不能做什么有疑问DLL.
std:string或CString一个DLL?structwith std::string members并将其填入DLL?DLL返回指向那里分配的结构的指针吗?它会有效吗?我可以删除吗?std::String或a Cstring?谢谢 !
有没有简单的方法来获取标签名称?
例如,如果我被赋予$('a')一个函数,我想得到'a'.
我在 bash 脚本中声明数组中的所有可打印字符时遇到问题。I\xe2\x80\x99d 喜欢通过循环 4 次显示所有可打印字符。
\n\n例子
\n\narray=( a b c d \xe2\x80\xa6 z A B C \xe2\x80\xa6 Z 1 2 3 \xe2\x80\xa6 0 ! @ # $ % ^ & * ( ) _ +)\n\nFor chr1 in ${array[@]} \nDo\nFor chr2 in ${array[@]}\nDo \nEcho $chr1$chr2\nDone\nDone\nRun Code Online (Sandbox Code Playgroud)\n\n我已经能够使用 ${array[value of space]} 获取要打印的空格字符,但我仍然无法获取要打印的 * 字符。由于某种原因,它倾向于打印文件列表。
\n\n知道如何让它发挥作用吗?
\n我有一个video_votes表,其中所有的投票都有一个名为value的列设置为1或-1.我想总结视频投票的所有价值并显示净投票数.首先,我应该如何总结,其次,我应该将这个值存储在我的视频表中吗?如果是这样,怎么样?
android ×2
java ×2
.net ×1
arguments ×1
asp.net ×1
asp.net-mvc ×1
bash ×1
bind ×1
c ×1
c++ ×1
database ×1
dll ×1
javascript ×1
jquery ×1
label ×1
orchardcms ×1
ruby ×1
threadpool ×1
title ×1
vb.net ×1