对于我的Java游戏服务器,我发送数据包的Action ID,它基本上告诉服务器数据包的用途.我想将每个Action ID(一个整数)映射到一个函数.有没有办法不使用开关这样做?
因此,当用户发送注册帐户的请求时,他们会发送用户名,密码,电子邮件和其他信息.注册功能必须验证其所有数据.一个例子是:
现在我不希望有5级深度if或case语句,但我还有其他选择吗?将它拆分成单独的函数听起来是个好主意,但是我只需要在某种条件下检查函数的返回值,它就会回到原来的问题.
我可以将它们分成函数,然后调用一个if语句与所有条件OR一起,但这不会给我我想要的东西,因为我需要能够告诉用户具体的错误,如果有的话.
如何在erlang中处理这种情况?是否有一个等价的return语句,或者它必须是函数中作为返回值的最后一个可执行行?
基本上我问这个问题同样的问题:如何在Python中进行相对导入?
但没有人给他一个正确的答案.鉴于你在一个子文件夹中,你想要上一个目录,然后进入另一个子文件夹,做他们建议的不起作用(正如OP在他的评论中指出的那样).
我知道你可以通过使用sys.path来做到这一点,但我更喜欢一个更干净的方法.
例:
App
__init__.py
Package_A
--__init__.py
--Module_A.py
Package_B
--__init__.py
--Module_B.py
Run Code Online (Sandbox Code Playgroud)
如何将Module_A导入Module_B?
当以1024块的数据块读取数据时,如何继续从接收大于1024字节的消息的套接字读取,直到没有数据为止?我应该只使用BeginReceive来读取数据包的长度前缀,然后一旦检索到它,使用Receive()(在异步线程中)读取数据包的其余部分?或者还有另一种方式吗?
我认为Jon Skeet的链接有解决方案,但是有一些关于该代码的speedbump.我使用的代码是:
public class StateObject
{
public Socket workSocket = null;
public const int BUFFER_SIZE = 1024;
public byte[] buffer = new byte[BUFFER_SIZE];
public StringBuilder sb = new StringBuilder();
}
public static void Read_Callback(IAsyncResult ar)
{
StateObject so = (StateObject) ar.AsyncState;
Socket s = so.workSocket;
int read = s.EndReceive(ar);
if (read > 0)
{
so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read));
if (read == StateObject.BUFFER_SIZE)
{
s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0,
new AyncCallback(Async_Send_Receive.Read_Callback), so);
return;
}
}
if (so.sb.Length > 0)
{
//All …Run Code Online (Sandbox Code Playgroud) 所以我有一些用户范围的设置,但由于某种原因,它们没有保存到.exe.config文件中.我做以下事情:
Properties.Settings.Default.Email = "new@value.com";
Properties.Settings.Default.Save();
Run Code Online (Sandbox Code Playgroud)
然而,我查看调试文件夹中的设置文件,它仍然是我在visual studio中设置的默认设置.我做错了吗?
谁为LOB应用程序提供了最好的第三方Silverlight控件?在过去,我使用Infragistics for WinForm控件非常好,他们也提供了很好的支持.然而,它们似乎有点落后于Silverlight空间中的Telerik.我也注意到了Silverlight工具包 - 它们和Telerik一样强大吗?如果有人能分享他们可能拥有的任何意见或经验,我将不胜感激.
这一直困扰着我.为什么人们说在rspec中进行单元测试而在黄瓜中进行整合测试?我不是在问为什么这些测试是必要的 - 我知道集成和单元测试之间的区别.我只是不明白为什么,鉴于黄瓜完全可定制的语法,它不用于单元测试?
在我看来,为黄瓜和rspec编写相同数量的代码,唯一的区别是,对于黄瓜,您将测试逻辑与测试编写分开.
我在Windows上开发,我想使用beanstalkd.它仅作为tarball提供,我只是想知道是否有一些方法可以像在Linux中一样轻松地构建它?我找到了一些用于Windows的gnu make端口,但它们似乎没有工作.源代码分发是否特定于Linux?
当我尝试使用mingw32-make时,它说"没有什么可以为文件做".TBH我不知道该怎么运行它,所以我尝试了tarball,目录,以及Makefile.in和Makefile.am.他们都说同样的话.
是否可以使用Java创建在Windows上看起来原生的应用程序?我不在乎解决方案是否可移植,因为我只计划针对Windows用户.如果重要,我正在使用Scala.
很抱歉缺乏细节,但我之前从未使用过Java,所以我甚至不确定这是否可行.
.net ×2
c# ×2
erlang ×2
java ×2
asynchronous ×1
build ×1
cucumber ×1
delegates ×1
makefile ×1
networking ×1
python ×1
ruby ×1
scala ×1
silverlight ×1
sockets ×1
unit-testing ×1
windows ×1