<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 9pt;
font-family:新細明體
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
<span class="Apple-style-span" style="color: rgb(42, 42, 42); font-family: PMingliu, Tahoma, Verdana, Arial, sans-serif; line-height: 15px; "><span class="ecxApple-style-span" style="line-height: 27px; font-size: 16pt; ">Hello Everyone, I want to use Ironpython to call a simple ssl socket test program</span><br style="line-height: 15px; "><div style="line-height: 15px; "><div dir="ltr" style="line-height: 15px; "><div style="line-height: 15px; font-size: 9pt; font-family: 新細明體; "><font class="ecxApple-style-span" size="4" style="line-height: normal; "><br style="line-height: 23px; "></font></div><div style="line-height: 15px; font-size: 9pt; font-family: 新細明體; "><font class="ecxApple-style-span" size="4" style="line-height: normal; ">but I got a ImportException error called "no module named ssl".</font></div><div style="line-height: 15px; font-size: 9pt; font-family: 新細明體; "><font class="ecxApple-style-span" size="4" style="line-height: normal; "><br style="line-height: 23px; "></font></div><div style="line-height: 15px; font-size: 9pt; font-family: 新細明體; "><font class="ecxApple-style-span" size="4" style="line-height: normal; ">Strange thing is I can import socket and run as "import socket".(tested with another simple socket program without ssl)</font></div><div style="line-height: 15px; font-size: 9pt; font-family: 新細明體; "><font class="ecxApple-style-span" size="4" style="line-height: normal; "><br style="line-height: 23px; "></font></div><div style="line-height: 15px; font-size: 9pt; font-family: 新細明體; "><font class="ecxApple-style-span" size="4" style="line-height: normal; ">But I cant import ssl as "import ssl" and got a big error, Any tips?</font></div><div style="line-height: 15px; font-size: 9pt; font-family: 新細明體; "><font class="ecxApple-style-span" size="4" style="line-height: normal; "><br style="line-height: 23px; "></font></div><div style="line-height: 15px; font-size: 9pt; font-family: 新細明體; "><font class="ecxApple-style-span" size="4" style="line-height: normal; ">My code in c# to call python:</font></div><div style="line-height: 15px; font-size: 9pt; font-family: 新細明體; "><font class="ecxApple-style-span" size="4" style="line-height: normal; "><br style="line-height: 23px; "></font></div><div style="line-height: 15px; font-size: 9pt; "><font class="ecxApple-style-span" face="新細明體" size="4" style="line-height: normal; "><div style="line-height: 23px; ">using System;</div><div style="line-height: 23px; ">using System.Collections.Generic;</div><div style="line-height: 23px; ">using System.ComponentModel;</div><div style="line-height: 23px; ">using System.Data;</div><div style="line-height: 23px; ">using System.Drawing;</div><div style="line-height: 23px; ">using System.Linq;</div><div style="line-height: 23px; ">using System.Text;</div><div style="line-height: 23px; ">using System.Windows.Forms;</div><div style="line-height: 23px; "><br style="line-height: 23px; "></div><div style="line-height: 23px; ">using IronPython.Hosting;</div><div style="line-height: 23px; ">using Microsoft.Scripting.Hosting;</div><div style="line-height: 23px; "><br style="line-height: 23px; "></div><div style="line-height: 23px; ">namespace test</div><div style="line-height: 23px; ">{</div><div style="line-height: 23px; ">&nbsp; &nbsp; public partial class Form1 : Form</div><div style="line-height: 23px; ">&nbsp; &nbsp; {</div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; public Form1()</div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; {</div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; InitializeComponent();</div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; }</div><div style="line-height: 23px; "><br style="line-height: 23px; "></div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; private void button1_Click(object sender, EventArgs e)</div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; {</div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ScriptRuntime pyRuntime = Python.CreateRuntime();</div><div style="line-height: 23px; "><br style="line-height: 23px; "></div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dynamic obj = pyRuntime.UseFile("sslsocket.py");</div><div style="line-height: 23px; "><br style="line-height: 23px; "></div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string response = obj.openssl("hello");</div><div style="line-height: 23px; "><br style="line-height: 23px; "></div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (response == "true")</div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; MessageBox.Show("success", "success", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);</div><div style="line-height: 23px; "><br style="line-height: 23px; "></div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.Close();</div><div style="line-height: 23px; ">&nbsp; &nbsp; &nbsp; &nbsp; }</div><div style="line-height: 23px; ">}</div><div style="line-height: 23px; "><br style="line-height: 23px; "></div><div style="line-height: 23px; ">And the&nbsp;sslsocket.py code is:</div><div style="line-height: 23px; "><br style="line-height: 23px; "></div><div style="line-height: 23px; "><div style="line-height: 23px; ">import socket</div><div style="line-height: 23px; ">import ssl</div><div style="line-height: 23px; "><br style="line-height: 23px; "></div><div style="line-height: 23px; ">def openssl(data):</div><div style="line-height: 23px; "><span class="ecxApple-tab-span" style="line-height: 23px; white-space: pre; ">        </span>HOST = '192.168.1.6'</div><div style="line-height: 23px; "><span class="ecxApple-tab-span" style="line-height: 23px; white-space: pre; ">        </span>PORT = 1234</div><div style="line-height: 23px; "><span class="ecxApple-tab-span" style="line-height: 23px; white-space: pre; ">        </span>d = data.encode('utf-8')</div><div style="line-height: 23px; "><span class="ecxApple-tab-span" style="line-height: 23px; white-space: pre; ">        </span>s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)</div><div style="line-height: 23px; "><span class="ecxApple-tab-span" style="line-height: 23px; white-space: pre; ">        </span>ssl_sock = ssl.wrap_socket(s,ca_certs="C:\Users\test\Documents\Visual Studio 2008\Projects\testupload\root.crt",cert_reqs=ssl.CERT_NONE)</div><div style="line-height: 23px; "><span class="ecxApple-tab-span" style="line-height: 23px; white-space: pre; ">        </span>ssl_sock.connect((HOST, PORT))</div><div style="line-height: 23px; "><span class="ecxApple-tab-span" style="line-height: 23px; white-space: pre; ">        </span>ssl_sock.send(d)</div><div style="line-height: 23px; "><span class="ecxApple-tab-span" style="line-height: 23px; white-space: pre; ">        </span>ssl_sock.close()</div><div style="line-height: 23px; "><span class="ecxApple-tab-span" style="line-height: 23px; white-space: pre; ">        </span>return "true"</div></div><div style="line-height: 23px; "><br style="line-height: 23px; "></div><div style="line-height: 23px; ">Platform: Win7 32 bit, Python 2.7, Visual studio 2010, IronPython 2.7.1(latest one)</div><div style="line-height: 23px; "><br></div><div style="line-height: 23px; ">PS.If this mail appeared twice, my bad &gt;.&lt;</div></font></div></div></div></span>                                               </div></body>
</html>