socket连接错误,各位兄弟帮帮忙.

wuyifeixiang 2004-09-21 04:11:39
做了一个网络通讯测试程序,在线程中进行网络连接操作,可是每次进行连接的时候如果服务器没开的话VC编译器的DEBUG窗口内,就会出现如下错误提示;但并不会影响程序的运行。相同的程序代码不在线程中调用的话就不会出现这种情况。
请问为什么会这样?有什么办法可以解决这个问题,郁闷很久了。
编译器VC6.0,安装有BoundsChecker错误检测工具。OS:Windows2000 Server。
First-chance exception in ErrTest.exe (RPCRT4.DLL): 0xC0000005: Access Violation.
...全文
164 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyifeixiang 2004-09-24
  • 打赏
  • 举报
回复
.................>>>>>>>>>>>>>>>>>>
yingpf 2004-09-23
  • 打赏
  • 举报
回复
下载过来运行了一下,没发现报错啊.不过我可没装什么boundscheck.
wuyifeixiang 2004-09-23
  • 打赏
  • 举报
回复
》。。。
wuyifeixiang 2004-09-23
  • 打赏
  • 举报
回复
难道真的没人知道为什么吗?这个问题我在这里面问过不只一次了,都没有结果。我也怀疑是因为装了boundscheck引起的,看来只了把它泻了再试:(
wuyifeixiang 2004-09-23
  • 打赏
  • 举报
回复
没问题只要能搞定,我把分全给你。
gdy119 2004-09-23
  • 打赏
  • 举报
回复
我帮你搞定(分给我,呵呵)
8751webmaster@sohu.com
flyingjm 2004-09-22
  • 打赏
  • 举报
回复
up
up
不过好像听说没有关系。我的情况和你的一样我也装有boundscheck。
你可以编写个简单的程序,然后测试发现也有出现这种情况。
另可以在csdn检索一下,以前也有人问过的,没见什么好的答复:(
wuyifeixiang 2004-09-22
  • 打赏
  • 举报
回复
我再顶
c4313848 2004-09-22
  • 打赏
  • 举报
回复
up
wuyifeixiang 2004-09-22
  • 打赏
  • 举报
回复
难道又要不了了之吗?帮忙UP一下吧。
wuyifeixiang 2004-09-21
  • 打赏
  • 举报
回复
xxedge(好钢用在刀刃上)
你的意思是因为没有重新设置ip和端口号,m_SockAddrIN的内容为非法而引起的吗?但是如果我不重新设置端口和IP,只要把服务器打开,就可以正常连接上,照样工作。这是为什么?如果是IP和端口引起的,那我重开服务器之后应该也不能连接才对啊。
flyingjm 2004-09-21
  • 打赏
  • 举报
回复
我也有这种情况,但是不影响执行,是程序的事?
xxedge 2004-09-21
  • 打赏
  • 举报
回复
肯定是下面的内容出错了,
TRACE("\nReConnect!!!!!:%d", i);
MySocket[i].Close();
MySocket[i].Socket();
MySocket[i].Connect();
在Socket()后应该再次设置IP和port吧
TRACE("\nReConnect!!!!!:%d", i);
MySocket[i].Close();
MySocket[i].Socket();
if (i==0){
MySocket[0].SetIPAddress("192.168.0.178");
MySocket[0].SetPort(9999);
} else {
MySocket[1].SetIPAddress("192.168.0.164");
MySocket[1].SetPort(9999);
}
MySocket[i].Connect();
wuyifeixiang 2004-09-21
  • 打赏
  • 举报
回复
DentistryDoctor(牙科医生) :邮件已发过去了请查收。
wuyifeixiang 2004-09-21
  • 打赏
  • 举报
回复
to yzx0023(无聊客):
你的方法恐怕不行。因为SOCKET句柄是成功建立了的只是在连接的时候出现了这个错误提示。

无聊客 2004-09-21
  • 打赏
  • 举报
回复
或者在TestThread里:
pdlg->MySocket[i].Socket();
pdlg->MySocket[i].Connect();
改成
if(pdlg->MySocket[i].Socket())
pdlg->MySocket[i].Connect();

无聊客 2004-09-21
  • 打赏
  • 举报
回复
BOOL Connect()
{
if(m_hSocket == INVALID_SOCKET) //加上这个判断
return FALSE;
if (connect(m_hSocket, (LPSOCKADDR)&m_SockAddrIN, sizeof(m_SockAddrIN))==SOCKET_ERROR)
{
m_bIsConnect = FALSE;
return FALSE;
}
else
{
m_bIsConnect = TRUE;
return TRUE;
}
}
DentistryDoctor 2004-09-21
  • 打赏
  • 举报
回复
也请发一份给我,我也看一下
DentistryDoctor@msn.com
wuyifeixiang 2004-09-21
  • 打赏
  • 举报
回复
代码在我邮箱里面,有兴趣的帮忙看看。

邮箱:wuyifly@126.com
PWS:217877
邮件主题:
"SOCKET错误代码"

请不要删除里面的邮件哈。谢谢!

18,356

社区成员

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

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