手捧仅有的30分跪求高手指点小弟这个问题啊,谢谢了!

bress111 2012-07-18 03:22:15
代码如下:
UpdateData(TRUE);
CString str = m_Connect_UserName.GetBuffer(0);
DWORD dwTarget_IP;
CString csTemp;
m_Target_IP.GetAddress(dwTarget_IP);//m_Target为我在编辑框里输入的IP
csTemp = IPToStr(dwTarget_IP);//IPToStr为我自定义的一个函数,格式化IP的作用
socket_handle = socket(AF_INET, SOCK_STREAM, 0);//创建一个socket句柄
if (socket_handle <=0)//如果创建失败,弹出消息
{
MessageBox(_T("Socket创建失败"));
}
else
{
MessageBox(_T("Socket创建成功"));//运行的时候弹出了成功对话框,说明socket建立成功。
}

sprintf_s(Target_Connect_IP, "%S", csTemp);//把IP转换后传给Target_Connect_IP
struct sockaddr_in addr;//定义结构体addr
addr.sin_family=AF_INET;
addr.sin_port=htons(mTarget_Port);//mTarget_Port为端口,定义形式为 #define mTarget_Port 10001,这样定义有问题吗?
addr.sin_addr.s_addr=inet_addr(Target_Connect_IP);
memset(&(addr.sin_zero),0,8);
CString str3;
str3.Format(_T("%d"),socket_handle);
MessageBox(str3);//这里弹出的socket_handle为-1,为什么呀?前面已经表示socket句柄创建成功了,怎么这里就为-1了?

int result=connect(socket_handle,(struct sockaddr *)&addr,sizeof(addr));//建立connect
if (result < 0)
{
MessageBox(_T("与远程主机建立连接失败"));//每次都弹出,说明connect建立失败啊,问题出在哪里?
char str[MAX_PATH];
DWORD Connect_Error=GetLastError();
CString str1;
CString str2;
str1.Format(_T("%u"),Connect_Error);//
str2.Format(_T("%S"),Target_Connect_IP);
MessageBox(str1);//弹出错误代码为1400,说明什么?
MessageBox(str2);//弹出的IP是正确的,说明IP没有错
}


return;


手上的分就30分了,哪位大哥帮我看看,30都给你了,谢谢啦!
...全文
142 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bress111 2012-07-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
哥,你的WINSOCK有初始化么?
[/Quote]呵呵,还真没有,谢谢了啊!分不多,你们两平分
bress111 2012-07-18
  • 打赏
  • 举报
回复
呵呵,还真没有,谢谢了啊!分不多,你们两平分[Quote=引用 1 楼 的回复:]
哥,你的WINSOCK有初始化么?
[/Quote]
hotpos 2012-07-18
  • 打赏
  • 举报
回复
同楼上

初始化用 WSAStartup
这个娜戒海了 2012-07-18
  • 打赏
  • 举报
回复
哥,你的WINSOCK有初始化么?

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧