我正在开发两个在具有典型服务器/客户端关系的独立VM中运行的java程序.使用ant的并行/顺序任务我已经能够让ant运行服务器然后运行客户端.我现在想要这样,当客户端进程停止时,ant会杀死服务器.我已经看到这对特定服务器应用程序(如TomCat)的自定义ant任务完成,是否存在使用通用Java进程执行此操作的任何方法?
另一篇文章质疑将语言编译成Javascript是多么实际.除了实用性,解释器从一些语言X转换为Javascript并在Javascript中实现?我特别感兴趣的是X的设计目的不是针对Javascript.即使口译员没有完全完成,我也想听听.
你可能对这个问题的动机感到好奇.Javascript当然不能像汇编程序那样充分利用它,但代码分发和执行的灵活性有时可能会超过这个成本.
这些解释器的一个用例是教学和学习编程语言的模型.考虑在交互式书籍Eloquent Javascript中使用Javascript解释器是多么有用.当然,在本地编译它可能会有性能损失,但在某些情况下,成本肯定是值得的.是的,我意识到依靠服务器编译或解释代码总是一种选择,但我对客户端方法特别感兴趣.
更新:许多响应包括对未在Javascript中实现的编译器的引用.我只想强调解释器本身应该用Javascript实现,这样它和源语言代码都可以在祖父母的计算机上的浏览器上运行.
我正在使用node.js 0.6.18,以下代码使node.js关闭每两个请求之间的TCP连接(strace在Linux上验证).如何让node.js为多个HTTP请求重用相同的TCP连接(即保持活动状态)?请注意,网络服务器能够保持活力,它可以与其他客户端一起使用.Web服务器返回分块的HTTP响应.
var http = require('http');
var cookie = 'FOO=bar';
function work() {
var options = {
host: '127.0.0.1',
port: 3333,
path: '/',
method: 'GET',
headers: {Cookie: cookie},
};
process.stderr.write('.')
var req = http.request(options, function(res) {
if (res.statusCode != 200) {
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
process.exit(1)
}
res.setEncoding('utf8');
res.on('data', function (chunk) {});
res.on('end', function () { work(); });
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
process.exit(1);
});
req.end();
}
work()
Run Code Online (Sandbox Code Playgroud) 我想获取客户端地址,但我不确定如何将sockaddr结构转换为sockaddr_in?
struct sockaddr_in cliAddr, servAddr;
n = recvfrom(sd, msg, MAX_MSG, 0,(struct sockaddr *) cliAddr,sizeof(cliAddr));
//i tried this but it does not work
struct sockaddr cliSockAddr = (struct sockaddr *) cliAddr;
char *ip = inet_ntoa(cliSockAddr.sin_addr);
Run Code Online (Sandbox Code Playgroud)
提前致谢!:)
我发现问题让我走到了这一步: 从sockaddr结构中获取IPV4地址
很抱歉为了避免混淆,这是我真正的实现,其中"ci"是存储指针(如sockaddr_in)的对象.
/* receive message */
n = recvfrom(*(ci->getSd()), msg, MAX_MSG, 0,(struct sockaddr *) ci->getCliAddr(),ci->getCliLen());
char *ip = inet_ntoa(ci->getCliAddr().sin_addr);
Run Code Online (Sandbox Code Playgroud)
我会收到以下错误:
udpserv.cpp:166: error: request for member ‘sin_addr’ in ‘ci->clientInfo::getCliAddr()’, which is of non-class type ‘sockaddr_in*’
Run Code Online (Sandbox Code Playgroud) 嗨,我试图在golang中学习一些套接字编程,我正在跟随本教程
http://synflood.at/tmp/golang-slides/mrmcd2012.html#1
以下是本教程在一页上的最终结果. https://github.com/akrennmair/telnet-chat/blob/master/03_chat/chat.go
我很困惑如何编写这个程序的客户端,我创建一个连接并拨入服务器运行的同一个端口/ IP但从那里我不知道.我有新创建的连接的read()和write()函数,但不知道在哪里划分读取或任何东西.考虑到文本输入是在服务器中进行的,我想我只需要读一些东西吗?
package main
import (
"bufio"
"fmt"
"net"
"os"
)
func main() {
conn, err := net.Dial("tcp", "127.0.0.1:6000")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
for {
fmt.Println(bufio.NewReader(conn).ReadString([]byte("\n")))
}
}
Run Code Online (Sandbox Code Playgroud) 关于广泛使用的requestAnimationFrame()函数,我有一些问题.最近我在多人游戏中遇到了一些在客户端而不是服务器端使用它的实现.
我在动画和游戏循环之间有点混淆 - 我正在寻找的是NodeJS中的实现=>例如setInterval.
(function () {
var lastTime = 0;
var vendors = ['ms', 'moz', 'webkit', 'o'];
for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
window.cancelAnimationFrame =
window[vendors[x] + 'CancelAnimationFrame'] ||
window[vendors[x] + 'CancelRequestAnimationFrame'];
}
if (!window.requestAnimationFrame)
window.requestAnimationFrame = function (callback, element) {
var currTime = new Date().getTime();
var timeToCall = Math.max(0, 16 - (currTime - lastTime));
var id = …Run Code Online (Sandbox Code Playgroud) 我有一些基于netty(4.1b7)的网络爬虫,我大量请求http和https不同的网站,我正在尝试配置netty客户端来处理具有不同身份验证设置的https网站.
当我有一个简单的netty配置没有自己的证书:
SslContext sslCtx = SslContextBuilder.forClient().build();
SSLEngine sslEngine = sslCtx.newEngine(ch.alloc(), host, port);
p.addLast("ssl", new SslHandler(sslEngine));
Run Code Online (Sandbox Code Playgroud)
大约一半的https网站被请求好,但其他网站失败了:
Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLEngineImpl.fatal(SSLEngineImpl.java:1728)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:304)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1506)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
at sun.security.ssl.Handshaker$1.run(Handshaker.java:919)
at sun.security.ssl.Handshaker$1.run(Handshaker.java:916)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.ssl.Handshaker$DelegatedTask.run(Handshaker.java:1369)
at io.netty.handler.ssl.SslHandler.runDelegatedTasks(SslHandler.java:1164)
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1067)
... 19 moreCaused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
at sun.security.validator.Validator.validate(Validator.java:260)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:281)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:136) …Run Code Online (Sandbox Code Playgroud) 我是SOAP的新手,正在尝试使用PHP的内置SoapClient连接到SOAP服务器。我几天来一直收到此错误,但找不到任何解决方案。
这是针对Linux服务器的。我尝试将SoapHeaders包含在时间戳中,并向请求中添加不同的参数,但是仍然没有成功。
这是我的代码:
$params = array(
'X' => array(
'Y' => '0',
'Z' => '1',
'Q' => array(
'W' => array(
'E' => '1'
)
),
'R' => array(
'T' => 3,
'Y' => array(
'U' => 'x',
'I' => 'y'
)
),
'O' => array(
'P' => '2'
)
),
'A' => array(
'S' => array(
'D' => 'H',
'F' => 'J',
'G' => 'K'
)
)
);
$client = new SoapClient( 'https://path-to-wsdl', array( 'trace' => 1 ) ); …Run Code Online (Sandbox Code Playgroud) 我目前正在为未来的项目评估.net客户端配置文件,我发现有一些事情我觉得它很无用,除非我当然缺少一些东西.
我已经在干净的xp vm上安装了客户端配置文件.当我开发一个小型测试winform应用程序(使用针对.net 3.5客户端配置文件的编译)并将其复制到虚拟机时,我无法运行它.错误消息是我需要.net 3.5 sp1或更高版本.我猜问题是sp1,是否有客户端配置文件sp1?我找不到.
然后我打开Windows更新以获取SP1.这是对sp1的70MB更新,完全忽略了"小".net客户端框架的重点.在此之后,应用程序确实有效.
另一件事,客户端配置文件是在线安装程序.离线安装程序是255MB?那么与完整的.net框架相比,功能和aprox的大小相同吗?
另一件事,如果您安装了任何以前版本的.net(这并非完全闻所未闻,vista和2003甚至包括它),客户端配置文件根本不会安装.升级2.0到3.5 sp1比客户端配置文件(28mb)大很多,所以如果可行的话,这将是有用的.
所以,我错了吗?如果我不是,有没有人真正发现客户端配置文件有用?
为什么我的Android应用程序没有连接到服务器?
我在Android模拟器中运行应用程序,服务器端口9999和主机127.0.0.1在我的电脑,但只是没有连接,我认为这个方法不适合Android应用程序.
更新:我使用API 8 ... Android 2.2!
这是好工作!!谢谢大家 ;)
这是我的源代码:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
//Java imports
//import android.util.Log;
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
public class MainActivity extends Activity{
//Variaveis Interface
private Button ligar;
private Button enviar;
private EditText text1;
private TextView text2;
//Variaveis
static Socket cSocket;
static PrintWriter out;
static BufferedReader in;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle …Run Code Online (Sandbox Code Playgroud)