读书人

可否帮忙C++改成C# 呢。感谢

发布时间: 2014-04-22 16:14:37 作者: rapoo

能否帮忙C++改成C# 呢。感谢
希望把以下C++代码改成C#,非常感谢!

CString strSend ="XXXXXBBBBBBBBBBBBBBBBBB";
int len=senddata(strSend.GetBuffer(strSend.GetLength()),strSend.GetLength());

int CVC6ClientDlg::senddata(char * buf,int num)
{
char sendbuf[512];
memcpy(sendbuf,buf,num);
sendbuf[num]='\n';
return SSL_writego(ssl, sendbuf, num+1);

}
[解决办法]



String strSend = "XXXXXBBBBBBBBBBBBBBBBBB";
byte[] byteSend = Encoding.UTF8.GetBytes(strSend);
int len = senddata(byteSend, byteSend.Length);

int senddata(byte[] buf, int num)
{
byte[] sendbuf = new byte[num+1];
buf.CopyTo(sendbuf, 0);
sendbuf[num] = (byte)'\n';
return SSL_writego(ssl, sendbuf, num+1);
}



注意那句Encoding.UTF8.GetBytes()
接收端要用Encoding.UTF8.GetString()

也可能是别的编码格式,统一就好
[解决办法]
相当C++的char sendbuf[512];
的是
byte[] sendbuf = new byte[512];
不过这样写不好,若是senddata超过512,就越界了。
而我的写法
byte[] sendbuf = new byte[num+1];
则不会有问题。

读书人网 >VC

热点推荐