我正在做的例子可以在这里找到.所以我试图在C#脚本中运行IronPython:
蟒蛇:
def hello(name):
print "Hello " + name + "! Welcome to IronPython!"
return
def add(x, y):
print "%i + %i = %i" % (x, y, (x + y))
return
def multiply(x, y):
print "%i * %i = %i" % (x, y, (x * y))
return
Run Code Online (Sandbox Code Playgroud)
C#:
using IronPython.Hosting;
using IronPython.Runtime;
using Microsoft.Scripting.Hosting;
using System;
namespace IntroIronPython
{
class IronPythonMain
{
static void Main(string[] args)
{
// Create a new ScriptRuntime for IronPython
Console.WriteLine("Loading IronPython Runtime...");
ScriptRuntime …Run Code Online (Sandbox Code Playgroud) 在 OkHttp3 中,不推荐使用以下内容[A]:
sslSocketFactory(SSLSocketFactory sslSocketFactory)
Run Code Online (Sandbox Code Playgroud)
它被替换为[B]:
sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager).
Run Code Online (Sandbox Code Playgroud)
以下是我的问题:
有什么用的X509TrustManager在[B] ?
在创建SSLSocketFactory对象时已经可以指定 TrustManager 时,使用[B]而不是[A]的优点是什么?
在https://square.github.io/okhttp/3.x/okhttp/okhttp3/OkHttpClient.Builder.html#sslSocketFactory-javax.net.ssl.SSLSocketFactory- 他们谈到在使用[B]时避免反射,有人可以解释?
更多信息:
创建SSLSocketFactory对象时,已经可以在
sslContext.init(KeyManager[] arg0, TrustManager[] arg1, SecureRandom arg2).
Run Code Online (Sandbox Code Playgroud)
例如,我通过执行以下操作获得SSLSocketFactory对象:
public SSLSocketFactory getSSLSocketFactory() {
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(getKeyManager(), getTrustManager(), new SecureRandom());
return sslContext.getSocketFactory();
}
Run Code Online (Sandbox Code Playgroud)
使用getTrustManager ()返回一个TrustManager[] 的方法,其中包含客户端应该信任的服务器证书。
现在,既然
sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager)
Run Code Online (Sandbox Code Playgroud)
希望我提供一个X509TrustManager对象,我通过以下方式处理:
OkHttpClient okClient = …Run Code Online (Sandbox Code Playgroud) 我正在开发一个项目,我将在C#中使用一个应用程序,在Python中使用另一个应用程序.C#应用程序将持续分析数据流,并在每次检测到有趣内容时引发标记.所以每次都会有一个事件,我的Python应用程序必须读取它并继续自己的进程,而其他标志将继续发送.如您所知,在发送另一个标志之前,C#app不会等待Python的完成计算.
所以我想知道是否有可能创建一个子/ pub(C#是发布者,Python是订阅者),如果是,我该怎么做,你觉得这是个好主意吗?我在这个领域很新,所以你能否告诉我是否有其他可能性?
谢谢你的帮助.
我正在C#(客户端)和Python(服务器)之间进行基本的套接字通信,但是我不明白为什么客户端会出现此错误:
[错误]致命异常:System.Net.Sockets.SocketException:在/ private / tmp / monobuild / build / BUILD /中的System.Net.Sockets.Socket.Connect(System.Net.EndPoint remoteEP)[0x00159]拒绝连接/ private / tmp /中的System.Net.Sockets.TcpClient.Connect上的mono-2.10.9 / mcs / class / System / System.Net.Sockets / Socket_2_1.cs:1262(System.Net.IPEndPoint remote_end_point)[0x00000] monobuild / build / BUILD / mono-2.10.9 / mcs / class / System / System / System.Net.Sockets / TcpClient.cs:284(位于System.Net.Sockets.TcpClient.Connect(System.Net.IPAddress [] ipAddresses,Int32端口)/private/tmp/monobuild/build/BUILD/mono-2.10.9/mcs/class/System/System.Net.Sockets/TcpClient.cs:355中的[0x000b3]
我的程序确实简短易用,所以我认为这是一个菜鸟问题,但我不明白。我只需要一个客户端向服务器发送消息,该消息将在控制台上打印出来。
这是C#客户端(错误来自:socket.Connect(“ localhost”,9999);)
using System;
using System.Net.Sockets;
namespace MyClient
{
class Client_Socket{
public void Publish(){
TcpClient socket = new TcpClient();
socket.Connect("localhost",9999);
NetworkStream network = socket.GetStream();
System.IO.StreamWriter streamWriter= new System.IO.StreamWriter(network);
streamWriter.WriteLine("MESSAGER HARGONIEN"); …Run Code Online (Sandbox Code Playgroud)