本站网址: YippeeSoft开心软件
由于SGIP采用IP认证,所以我只能先连接到服务器,然后由服务器转发,结果郁闷的事情发生了。昨天我直接连接网关是可以接收到数据的,虽然告诉我认证失败,但是今天却总是不能接收到数据,而用 microsft网络监视器却发现有数据返回。
我原来的代码:
SFTcp t=new SFTcp();
t.Conn("192.168.15.206",8882);
t.Send(bsend);
System.Threading.Thread.Sleep(500);
Trace.WriteLine("接收数据:"+BitConverter.ToString(t.Rec(60)));
出错信息:
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.IO.BinaryReader.ReadBytes(Int32 count)
at NetClsLib.SFTcp.Rec(Int32 len) in e:\\sf\\netclslib\\sfsocket.cs:line 95 无法从传输连接中读取数据。
“SGIPSP.exe”: 已加载“c:\\winnt\\assembly\\gac\\mscorlib.resources\\1.0.5000.0_zh-chs_b77a5c561934e089\\mscorlib.resources.dll”,未加载符号。
未处理的“System.ArgumentNullException”类型的异常出现在 mscorlib.dll 中。
修改为: Trace.WriteLine("接收数据:"+BitConverter.ToString(t.BinRd.ReadBytes(4) )); 则OK。
REC函数只是简单的封装:public byte [] Rec(int len)
&leftsign;
try
&leftsign;
return BinRd.ReadBytes(len);
&rightsign;
catch(Exception e)
&leftsign;
Trace.WriteLine(e.StackTrace+"\\t"+e.Message);
return null;
&rightsign;
&rightsign;
byte []b=BinRd.ReadBytes(len);
return b; 这样也可以~~~~~
晕倒!◎#×◎……◎#※…… 现在居然又都可以了!!!!!!!!!!!!!
BinaryReader.ReadBytes 方法 [C#]请参见
从当前流中将 count 个字节读入字节数组,并使当前位置提升 count 个字节。
包含从基础流中读取的数据的字节数组。如果到达了流的末尾,则该字节数组可能小于所请求的字节数。
我怀疑和大小有关,如果读取小于数据流的个数,那么可以,如果读取大于数据流的个数,那么ERROR。
原创文章,转载请注明: 转载自YippeeSoft开心软件
历史博文
- vivi linux - 2010
- 20081028 c# socket keeplive - 2009
- 20071010 vba excel saas - 2008
- 20070127 linux gtk install 1 - 2007
- 0304 vcd 家庭相册 制作 - 2006
- TortoiseCVS User's Guide翻译-沙盒 - 2005
- MAGIC C++ PRO*C编程失败的尝试3 - 2005
- Find an ASP.NET 2.0 Beta 2 Web Hoster - 2005
评论