我们的C#客户端应用程序在首次运行时总是需要更长的时间才能加载.我还没有测试它是否是任何较慢的.NET应用程序的第一次运行,或者每个 .NET应用程序的第一次运行速度较慢,但在任何情况下它仍然是一个问题.我们怎样才能消除这种一次性的创业打击?
我最初的想法是,某种服务可以"热身"库.我们需要为每个应用程序或任何.NET应用程序执行此操作吗?服务运行的用户是否会有所作为?也许不是Windows服务,在Windows登录上运行的应用程序可以执行肮脏的工作吗?那么,它是一个.NET服务是否足够,或者我们是否必须运行我们的每个程序以消除惩罚?我们可以传入一个命令行参数来告诉程序立即退出,但这是否足够,或者我们是否需要.NET来加载我们将在应用程序的正常执行期间使用的每个程序集?
Re:有些答案,我们正在部署发布模式的DLL,而减速仅在第一次启动时.我们正在尽可能地延迟类的初始化.
我正在编写套接字服务器和Flash游戏客户端.游戏需要实时命令,如移动和转动.这些命令必须尽快由服务器发送到客户端,因为否则其他客户端将与移动/转向客户端进行大量的同步.
这是Nagle算法引起的问题的一个例子:
注意:如果您想了解这些命令的含义,请参阅下面的命令表.
第一个是我移动的船(向前移动+向右移动,向前移动但是没有移动)
客户端发送命令:
84796: Sending data: 2#4
84796: Sending data: 2#2
84904: Sending data: 2#3
84904: Sending data: 2#0
86187: Sending data: 2#4
86188: Sending data: 2#2
86374: Sending data: 2#3
86404: Sending data: 2#0
Run Code Online (Sandbox Code Playgroud)
客户端接收命令:
79244: Raw receive: 3#3#4$
79244: New command: 3#3#4
79398: Raw receive: 3#3#2$3#3#3$3#3#0$
79399: New command: 3#3#2
79399: New command: 3#3#3
79399: New command: 3#3#0
80635: Raw receive: 3#3#4$
80635: New command: 3#3#4
80908: Raw receive: 3#3#2$3#3#3$3#3#0$
80908: New command: 3#3#2
80908: …Run Code Online (Sandbox Code Playgroud) network-programming tcp client-server real-time network-protocols
为什么连接的客户端使用高端口号(临时端口),而应用程序通常监听小端口号?
Thx in advans,Karthik Balaguru
这是关于发布在这里
我能够将我的PC连接到本地的本地tigase服务器设置(我正在使用Smack API).现在,当我想通过Wi-Fi将Android Phone连接到该服务器时,我遇到了问题.我能够通过使用客户端Beem连接到本地服务器android.My XMPP服务器的域名是我的PC名称"mwbn43-1",IP地址是"192.168.0.221"(我能够ping这个服务器从Android终端模拟器).在Beem设置中有一个高级选项,我可以指定我要连接的服务器(我已经将其作为IP地址).如果我没有设置此选项,我无法conect.Now这里是的片段代码我用于我的Android客户端.
XMPPConnection.DEBUG_ENABLED = true;
ConnectionConfiguration config = new ConnectionConfiguration("mwbn43-1",5222);
//ConnectionConfiguration config = new ConnectionConfiguration("192.168.0.221",5222);
config.setSASLAuthenticationEnabled(false);
config.setCompressionEnabled(false);
XMPPConnection xmpp = new XMPPConnection(config);
try {
xmpp.connect();
xmpp.login("admin@mwbn43-1", "tigase");
String host = xmpp.getHost();
String id = xmpp.getConnectionID();
int port = xmpp.getPort();
boolean i = false;
i = xmpp.isConnected();
if(i)
{answer = "Connected to " + host + " via port " + port + " with ID " + id;
answerfield.setText(answer);}
}//end try
catch (XMPPException e) {
answerfield.setText("Failed …Run Code Online (Sandbox Code Playgroud) 据我所知,GPL表示您只需为您分发的作品分发衍生代码,即如果您开发内部软件,则可以将代码保密.
如果您开发服务器应用程序,比如Facebook或StackOverflow,会发生什么?服务器应用程序不是"分布式"的,所以在这种情况下您的代码的情况如何?
澄清 想象一下,我基于CVS创建自己的VCS,并将访问作为服务出售,但不要让其他人运行自己的服务器......就像代码商业模式一样.我从大量基于GPL代码的东西赚钱,但我从不发布服务器本身 - 这是否意味着我没有义务在GPL下发布源代码?
顺便说一句,欢迎讨论道德和法律方面.
这是一个实际的面试问题.O_O
让我们不谈谈在面试中提出这样一个问题的问题.
我想知道用于C或C++的ol'TCP套接字方法的替代方法(例如库)是什么样的.
我对平台,编译器等没有任何假设 - 请选择.
我不是要求你们实际编写程序,而只是指出可能用于此目的的技术,并且可能是在C/C++中使用该技术的示例或教程.
谁应该首先设置TCP FIN标志.服务器,当完成发送数据或客户端,收到完整数据?
问候
在delphi下编写客户端 - 服务器应用程序的最佳方法是什么?我知道有一种DataSnap技术,但它不是专业版.您有任何可以分享的经验吗?
我正在编写一个应用程序,我需要阅读地址簿数据来搜索一些感兴趣的联系人,类似于现在许多应用程序所做的事情(如Viber,Whatsapp,Tango ......).我需要进行匹配,因此我将数据发送到服务器并回复客户端哪些联系人在其设备上安装了相同的应用程序.
我的想法的逻辑或机制没有问题,我的问题是速度!我能够做我想要的但是这个过程需要27秒才能完成,iPhone4上有500个联系人.如果我们尝试Viber或Whatsapp(或任何类似的应用程序),在相同的设备上,该过程只需不到5秒.
我的方法很简单,我做一个for循环并读取所有内容.我怎么能做同样的事情,但比其他应用程序更快?
这是我使用的代码:
//variable definitions
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFMutableArrayRef peopleMutable = CFArrayCreateMutableCopy(kCFAllocatorDefault, CFArrayGetCount(people), people);
//sort the contents of the Mutable Array
CFArraySortValues(peopleMutable, CFRangeMake(0, CFArrayGetCount(peopleMutable)), (CFComparatorFunction) ABPersonComparePeopleByName, (void*) ABPersonGetSortOrdering());
//read the Address Book
NSString *fullName, *number;
ABRecordRef record = ABPersonCreate();
ABMutableMultiValueRef multi;
int contactID;
int nameCount=0;//used to count the names in the string to send to server
NSMutableString *strNamesToSend = [[NSMutableString alloc] init];
for(CFIndex i=0; i< CFArrayGetCount(people); i++)
{
record = CFArrayGetValueAtIndex(people, i);
multi …Run Code Online (Sandbox Code Playgroud) 我启动了本教程中所述的Derby Network Server - 这里.
但是当我键入:
ij> connect 'jdbc:derby://localhost:1527/sample;create=true',
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
错误XJ041:DERBY SQL错误:ERRORCODE:40000,SQLSTATE:XJ041,SQLERRMC:故意创建数据库'sample',详细信息请参见下一个异常.::: SQLSTATE:XB M0H
任何想法如何解决这一问题 ?
derby.log 内容:
Tue Oct 13 10:56:03 EEST 2015 : Apache Derby Network Server - 10.11.1.2 - (1629631) started and ready to accept connections on port 1527
Tue Oct 13 10:56:10 EEST 2015 Thread[DRDAConnThread_2,5,main] Cleanup action starting
ERROR XBM0H: Directory C:\Program Files\Java\jdk1.8.0_45\db\bin\sample cannot be created.
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.services.monitor.StorageFactoryService$10.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.derby.impl.services.monitor.StorageFactoryService.createServiceRoot(Unknown Source)
at org.apache.derby.impl.services.monitor.BaseMonitor.bootService(Unknown Source)
at …Run Code Online (Sandbox Code Playgroud) client-server ×10
tcp ×2
.net ×1
addressbook ×1
android ×1
c ×1
c++ ×1
connection ×1
delphi ×1
delphi-2010 ×1
derby ×1
gpl ×1
ios ×1
iphone ×1
java ×1
jdbc ×1
licensing ×1
networking ×1
performance ×1
ports ×1
real-time ×1
smack ×1
sockets ×1
tigase ×1
xmpp ×1