VC++网络编程的问题求师兄指点? 本帖最后由 VisualEleven 于 2011-04-11 15:59:58 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 VisualEleven 于 2011-04-11 16:00:14 编辑 执行到这里m_send_addr.sin_addr.S_un.S_addr=inet_addr((char*)ip);ip的值是多少? strip->GetBuffer(strip->GetLength())改成strip->GetString(); 这样试一下 CString strIP; m_ip_ed.GetWindowTextW(strIP); ip = strip->GetBuffer(strip->GetLength()); m_cli_socket = socket(AF_INET, SOCK_STREAM, 6); m_send_addr.sin_family = AF_INET; m_send_addr.sin_port = htons(12651); m_send_addr.sin_addr.S_un.S_addr = inet_addr(strIP.GetBuffer()); if(SOCKET_ERROR==connect(m_cli_socket,(sockaddr*)&m_send_addr,sizeof(m_send_addr))) { MessageBox(_T("连接失败")); } 注意你的编码环境,多字节还是Unicode 可能是编码问题导致你inet_addr转化失败,CString *strip=new CString();m_ip_ed.GetWindowTextW(*strip);你用的是宽字符,但inet_addr要求非宽字符,这个地方你要转一下,把宽字符转换成ASC码试下。 有人能帮个忙吗?FLASH无法从缓存里加载!!我用自己写的浏览器,第一次能正确进入游戏,但再次进入时,因为这时的FLASH被缓存了,而导致不能进入(把缓存清了就可以了)!我用其它浏览器(IE,360,MAXTHON)都能进入,就是自己写的不能进入,不知怎么回事!!测试地址:这是一个FLASH网页游戏,没有PPS帐号的,请先注册一个帐号http://g.pps.tv/mcsd CString *strip=new CString();m_ip_ed.GetWindowTextW(*strip);CStringA sip = *strip; ip=sip ->GetBuffer(sip ->GetLength()); m_cli_socket = socket(AF_INET,SOCK_STREAM,6); m_send_addr.sin_family=AF_INET; m_send_addr.sin_port=htons(12651); m_send_addr.sin_addr.S_un.S_addr=inet_addr((char*)ip); if( SOCKET_ERROR==connect(m_cli_socket,(sockaddr*)&m_send_addr,sizeof(m_send_addr))) { MessageBox(_T("连接失败")); } 不能说以上代码是否优劣 但是 在对字符处理方面总是看起来不是很舒服 而且好多并不能理解宽字符和窄字符的区别 而且也没有能搞明白 socket api 是使用在什么字符状态下的 CString strIP; m_ip_ed.GetWindowText(strIP);//这里不要加 m_ip_ed.GetWindowTextW m_cli_socket = socket(AF_INET, SOCK_STREAM, 6); m_send_addr.sin_family = AF_INET; m_send_addr.sin_port = htons(12651); USES_CONVERSION; m_send_addr.sin_addr.S_un.S_addr = inet_addr(T2A(strIP));//使用T2A的宏将Cstring转换成 char* if(SOCKET_ERROR==connect(m_cli_socket,(sockaddr*)&m_send_addr,sizeof(m_send_addr))) { MessageBox(_T("连接失败")); } 怎么学习Windows 编程,刚学MFC感觉学的好混乱,该怎么学呢? 讨论一下,如何确保SetForegroundWindow()成功??????? 在FORMVIEW上放一个STATIC,想在这个STATIC上画图,总是不成功,请问为什么,怎么解决?! dbf格式的数据文件,怎样写下面的SQL语句? 当笔记本电池用完,XP要进入休眠状态时,它会给当前系统里的窗口发什么消息? 线程的基本问题,初学 CPropertySheet的问题 哪位哥们能帮我解决,我生成了一个ALT服务程序,但是在我的程序中无法调用MFC类,请问如何解决这个问题? 如何用键盘和鼠标钩子封锁键盘和鼠标? 关于MATLAB的MATCOM如何使用的问题,能及如何去找这个东东 char*的图片数据怎么转为opencv的IplImage??????? vs2010开发没饭吃累程序,编译时不走程序??
ip的值是多少?
改成
strip->GetString();
CString strIP;
m_ip_ed.GetWindowTextW(strIP); ip = strip->GetBuffer(strip->GetLength());
m_cli_socket = socket(AF_INET, SOCK_STREAM, 6); m_send_addr.sin_family = AF_INET;
m_send_addr.sin_port = htons(12651);
m_send_addr.sin_addr.S_un.S_addr = inet_addr(strIP.GetBuffer()); if(SOCKET_ERROR==connect(m_cli_socket,(sockaddr*)&m_send_addr,sizeof(m_send_addr)))
{
MessageBox(_T("连接失败"));
}
CString *strip=new CString();
m_ip_ed.GetWindowTextW(*strip);你用的是宽字符,但inet_addr要求非宽字符,这个地方你要转一下,把宽字符转换成ASC码试下。
我用其它浏览器(IE,360,MAXTHON)都能进入,就是自己写的不能进入,不知怎么回事!!测试地址:这是一个FLASH网页游戏,没有PPS帐号的,请先注册一个帐号
http://g.pps.tv/mcsd
m_ip_ed.GetWindowTextW(*strip);CStringA sip = *strip;
ip=sip ->GetBuffer(sip ->GetLength()); m_cli_socket = socket(AF_INET,SOCK_STREAM,6);
m_send_addr.sin_family=AF_INET;
m_send_addr.sin_port=htons(12651);
m_send_addr.sin_addr.S_un.S_addr=inet_addr((char*)ip);
if( SOCKET_ERROR==connect(m_cli_socket,(sockaddr*)&m_send_addr,sizeof(m_send_addr)))
{
MessageBox(_T("连接失败"));
}
m_ip_ed.GetWindowText(strIP);//这里不要加 m_ip_ed.GetWindowTextW m_cli_socket = socket(AF_INET, SOCK_STREAM, 6); m_send_addr.sin_family = AF_INET;
m_send_addr.sin_port = htons(12651);
USES_CONVERSION;
m_send_addr.sin_addr.S_un.S_addr = inet_addr(T2A(strIP));//使用T2A的宏将Cstring转换成 char* if(SOCKET_ERROR==connect(m_cli_socket,(sockaddr*)&m_send_addr,sizeof(m_send_addr)))
{
MessageBox(_T("连接失败"));
}