能够写入sslstream但无法阅读

时间:2017-08-17 14:07:06

标签: c# .net sockets stream sslstream

我正在尝试在443端口上写入/读取sslstream。

我能够将数据写入该sslstream,但在从该sslstream读取时,它正在等待永远阅读。

示例代码:

 var add= "IPGoesHere";

 var port = 443;

var remoteIpAdd= IPaddress.
Parse("IPGoesHere");

var socket = new Socket(remoteIpAdd.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

socket.Connect(new IPEndPoint(remoteIpAdd,port));

var netstream = new NetworkStream(
socket);

var sslstream = new SslStream(
netstream, false, callback1, 
callback2);

sslstream.AuthenticateAsClient
(add,null, SslProtocols.Tls12, false);

var bytes = Encoding.Ascii.GetBytes("something");

sslstream.write( bytes,0,bytes.Length);
sslstream.Flush();

sslstream.Read(new byte[9],0,9);  //Here it is waiting indefinitely..

var add= "IPGoesHere"; var port = 443; var remoteIpAdd= IPaddress. Parse("IPGoesHere"); var socket = new Socket(remoteIpAdd.AddressFamily, SocketType.Stream, ProtocolType.Tcp); socket.Connect(new IPEndPoint(remoteIpAdd,port)); var netstream = new NetworkStream( socket); var sslstream = new SslStream( netstream, false, callback1, callback2); sslstream.AuthenticateAsClient (add,null, SslProtocols.Tls12, false); var bytes = Encoding.Ascii.GetBytes("something"); sslstream.write( bytes,0,bytes.Length); sslstream.Flush(); sslstream.Read(new byte[9],0,9); //Here it is waiting indefinitely..

Callback1是一个RemoteCertificateValidationCallback方法,我在这里返回true。

Callback2是一个本地证书选择回调方法,在这里返回null。

我在想,当它能写的时候怎么也看不懂。

有人可以就此问题分享一些意见。

PS:我在移动应用中输入了整个代码。遗憾的是对齐。

0 个答案:

没有答案