当前位置:编程学习 > C#/ASP.NET >>

关于csocket中send 发送变量,只能接收到一个字符数据问题

我用的是vs2008,字符集为unicode,工程为 mfc 基于dialog的。
在服务器端 发送ser_socket.Send("have receive the msg",50);
接收端: for(;;)
{ ret=asocket.Receive(szRecValue,100);
if(ret==0)
{break;}
msg+=szRecValue;
}
  AfxMessageBox(msg);能正常输出发送的字符串

但是如果是发送 Cstring str_send(_T("have receive the msg"));
  ser_socket.Send(str_send,str_send.GetLength());
则接收端只输出了一个字母h

我用 CString str;
  Cstring str_jia;
for (int i = 0; i< 50; i++)
{ str= szRecValue[i];
//str_jia +=ss; 不好用
  AfxMessageBox(str);
}输出的是 h 空 a 空 v .......

  另外 循环条件中i< 50 的大小怎么求?
我发送数据肯定要用变量,而不用字符串。接收到得信息怎么处理才能正常显示?   
 
--------------------编程问答-------------------- 问题解决 但是相当不满意,有兴趣的可以再考虑下
谢谢,一语惊醒梦中人啊。解决了
用循环来做的。
for(;;)
{
ret=asocket.Receive(szRecValue,100);
  if (ret == 0)
  {
break;
  }
else
{
for (int i = 0; i<ret;i++)
{
ss = szRecValue[i];
str_jia += ss;
}
}
第一种赋值还是不行。
另外ser_socket.Send(str_send,str_send.GetLength());
参数2也要注意,发送长度要*2 --------------------编程问答-------------------- char szRecValue[1024]={0};
aSocket.Receive((void*)szRecValue,1024);
AfxMessageBox(szRecValue);
--------------------编程问答-------------------- 为啥每次收一个字符,不是可以一次接受一个字符串吗? --------------------编程问答-------------------- char szRecValue[1024]={0};
aSocket.Receive((void*)szRecValue,1024);
AfxMessageBox(szRecValue);

===================
输出还是只有一个字符 --------------------编程问答-------------------- 另外,用循环时,发送汉字,得到的内容是一些字母 --------------------编程问答-------------------- unicode 字符集第2个字符很多值为 0,
如果是普通字符集可以
char szRecValue[1024]={0};
aSocket.Receive((void*)szRecValue,1024);
AfxMessageBox(szRecValue);

CString str = szRecValue; --------------------编程问答-------------------- 为什么不将发送字符串转为utf,接收到字符后再转回unicode呢?
补充:.NET技术 ,  VC.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,