+ -
当前位置:首页 → 问答吧 → socket的sento出错!这种问题你们肯定都没遇到!我敢肯定很多人没遇到过...

socket的sento出错!这种问题你们肯定都没遇到!我敢肯定很多人没遇到过...

时间:2011-12-04

来源:互联网

C/C++ code
m_InternetAddr.sin_family=AF_INET;
  //m_InternetAddr.sin_addr.s_addr = inet_addr((const char *)(LPCTSTR)m_szIP);
m_InternetAddr.sin_addr.S_un.S_addr=inet_addr("10.126.72.29");
  m_InternetAddr.sin_port=htons(11111);
if(sendto(mysocket,(const char *)(LPCTSTR)s,s.GetLength(), 0, (SOCKADDR *)&m_InternetAddr, sizeof(m_InternetAddr) ) )
{
int ret=WSAGetLastError();
CString str;
str.Format(L"%d", ret);
  AfxMessageBox(str);
}

在我给你m_InternetAddr赋值和sento之间居然发生了m_InternetAddr的值变化了! 结果出错了..就如我上述代码那样它会跳到if语句里面,然后就出现了0!不知道何因啊? 更奇怪的是服务器居然还能收到一个字符额! 一个字符...多了还不让!...

作者: Lg18975236323   发布时间: 2011-12-04

谁能来帮我一把啊....

作者: Lg18975236323   发布时间: 2011-12-04

这个问题,我也遇到过...结果不了了...

作者: longgang521125   发布时间: 2011-12-04

建议换方法...

作者: longgang521125   发布时间: 2011-12-04

又发一遍?

作者: VisualEleven   发布时间: 2011-12-04

(const char *)(LPCTSTR)s,s.GetLength(), 
你sendto函数中,你这么一强制转换就只发了一个字符

作者: VisualEleven   发布时间: 2011-12-04

该回复于2011-12-04 15:36:35被版主删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#7楼 得分:0回复于:2011-12-04 15:33:40
(const char *)(LPCTSTR)

-- 

呵呵,编码不是闹着玩的,不是你想怎么转就怎么转的。

作者: sinservice   发布时间: 2011-12-04

我勒个去...这!

作者: sinservice   发布时间: 2011-12-04

引用 5 楼 visualeleven 的回复:
(const char *)(LPCTSTR)s,s.GetLength(),
你sendto函数中,你这么一强制转换就只发了一个字符

你niuB

作者: longgang521125   发布时间: 2011-12-04

其实他不是只发了一个,而是只打印了一个。

发了多少呢? 应该发了一半。

如果应该发送N个字节,他实际发了N/2个字节。

作者: longgang521125   发布时间: 2011-12-04

VisualEleven
爱死你了....

作者: sinservice   发布时间: 2011-12-04

引用 5 楼 visualeleven 的回复:

(const char *)(LPCTSTR)s,s.GetLength(),
你sendto函数中,你这么一强制转换就只发了一个字符


顶!

作者: Lg18975236323   发布时间: 2011-12-04

热门下载

更多