我试图编写一个很简单的网络程序:
主要代码如下:;
CMySocket的基类是CAsyncSocket
class CTSocketDlg : public CDialog
{
// Construction
public:
void OnAccept();
CMySocket m_st;
CMySocket m_sc;
CMySocket m_ss;
CTSocketDlg(CWnd* pParent = NULL); // standard constructor}void CTSocketDlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_ss.Create (1023);
m_ss.Listen ();
MessageBox("服务器进入监听状态!");
}void CTSocketDlg::OnButton3()
{
// TODO: Add your control notification handler code here
m_ss.Close ();
MessageBox("服务器已经关闭!");
}void CTSocketDlg::OnButton2()
{
// TODO: Add your control notification handler code here
m_sc.Create ();
m_sc.Connect ("hjg",1023);
MessageBox("客户机已经发出连接请求!");
}void CTSocketDlg::OnAccept()
{
AfxMessageBox("服务器成功接受客户机连机!");
m_ss.Accept (m_st); ??????
}在CMySocket类中的 OnAccept()函数里面调用Dlg类的OnAccept()函数处理连接事件,问题就出在这里:
我如果删除m_ss.Accept (m_st);程序除了不能建立一个m_ss对象之外,完全运行正常,但是如果不删除的话运行到这里的时候就会弹出那个XP中该死的对话框:遇到问题需要关闭.............
我实在每办法了!!高手们帮忙看看!!~~~
主要代码如下:;
CMySocket的基类是CAsyncSocket
class CTSocketDlg : public CDialog
{
// Construction
public:
void OnAccept();
CMySocket m_st;
CMySocket m_sc;
CMySocket m_ss;
CTSocketDlg(CWnd* pParent = NULL); // standard constructor}void CTSocketDlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_ss.Create (1023);
m_ss.Listen ();
MessageBox("服务器进入监听状态!");
}void CTSocketDlg::OnButton3()
{
// TODO: Add your control notification handler code here
m_ss.Close ();
MessageBox("服务器已经关闭!");
}void CTSocketDlg::OnButton2()
{
// TODO: Add your control notification handler code here
m_sc.Create ();
m_sc.Connect ("hjg",1023);
MessageBox("客户机已经发出连接请求!");
}void CTSocketDlg::OnAccept()
{
AfxMessageBox("服务器成功接受客户机连机!");
m_ss.Accept (m_st); ??????
}在CMySocket类中的 OnAccept()函数里面调用Dlg类的OnAccept()函数处理连接事件,问题就出在这里:
我如果删除m_ss.Accept (m_st);程序除了不能建立一个m_ss对象之外,完全运行正常,但是如果不删除的话运行到这里的时候就会弹出那个XP中该死的对话框:遇到问题需要关闭.............
我实在每办法了!!高手们帮忙看看!!~~~
解决方案 »
- 用vc++6.0编程屏蔽ctrl+F4,LWIN和RWIN怎么编
- socket和多线程中关闭阻塞的子线程的相关问题?
- 关于VC的一些基础问题
- [散分]AfxMessageBox也遇断言错
- 求教:视频文件中抓取图像
- 谁对wave录音编程熟悉的?有一问题是在搞不定了,为什么调用waveInReset之后接收不到MM_WIM_DATA消息???????????
- 怎样启动摄像头?怎样在不知道该函数的情况下用MSDN查找?
- 谁有多线程例子,发到信箱,马上给分!!提供网址当然也是有分的!!
- 急!急!急!关于”建立空文档失败“的问题,解决问题者,愿将分全部奉上!
- 如何立即终止一个ODBC正在处理的线程?
- 为什么程序无法运行?
- MS的SPY++的find windows不能捕获到label或者edit等控件,想问问如果想捕获其它程序的label上的caption上的值
首先,你的M_ST是否已经关闭。意思是说你上次连接后,在断开连接的时候有没有关闭M_ST,若没有,肯定会出错。
其次,CMySocket m_st,M_ST有没有用过CREATE函数而绑定了端口。你的:OnAccept()函数里面调用Dlg类的OnAccept()函数处理连接事件
直接通过传入Dlg类的指针调用吗?
难道m_ss.Accept (m_st)该句不就是Creat()吗??晕
m_sc.Connect("127.0.0.1",1023);