一个小问题,急!!!!!!!!!!!!!!!

PM0115 2004-01-17 08:17:59
假设一个采用TCP/IP方式的服务器开始侦听后,发现客户端有连接请求,这时将触发类CAsyncSocket的那个事件:OnAccept()还是Accept()?

假设我要求触发后服务器程序能弹出一个对话框,即MessageBox("come!"),则这句该加入到哪个地方?是加到对话框类某个成员函数中?还是CAsyncSocket的某个成员函数中?
请略写几句!
谢谢了!!!
...全文
31 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
PM0115 2004-01-29
  • 打赏
  • 举报
回复
非常感谢楼上各位顶力相助!
谢谢,祝大家新年好运!
qianyong325 2004-01-20
  • 打赏
  • 举报
回复
你的服务端和客户端都在自己的机子上吧?这个程序是你写的测试程序想看看CAsyncSocket怎么用的吧?我前一段也被这个东西搞得头昏眼花,主要是当时没弄懂通信是怎么回事


如果你的服务端和客户端在同一台机子上,你就把IP改为127.0.0.1,在试试!
nuaawenlin 2004-01-20
  • 打赏
  • 举报
回复
if(!m_ConnectSocket.Connect(("1.2.3.4"),8000))
要看看你的IP地址是否存在,1.2.3.4为服务器的IP地址
如果设置正确,应该没有问题
还有服务器的端口号也要为8000
对于客户端,你可以添加OnConnect事件来看看是否连接成功
再看看是服务器的问题,还是客户端的问题
yaolan1999 2004-01-20
  • 打赏
  • 举报
回复
DWORD i = GetLastError();看看返回值是什么,查一下是什么错误。
连接时要保证服务器在监听。
abrams 2004-01-19
  • 打赏
  • 举报
回复
找个聊天室什么的例子看看,比较简单
abrams 2004-01-19
  • 打赏
  • 举报
回复
你去vckbase看看吧http://www.vckbase.com/code/listcode.asp?mclsid=9&sclsid=901
abrams 2004-01-19
  • 打赏
  • 举报
回复
不对吧,OnAccept应该是在客户端吧
PM0115 2004-01-18
  • 打赏
  • 举报
回复
首先感谢楼上几位!
但是我添加以后还是不行,不知是怎么回事!!!分不够再加。
下面是我的部分代码:

服务器程序:
void CServerSocket::OnAccept(int nErrorCode) //我通过向导给类CServerSocket添加的消息处理函数
{
// TODO: Add your specialized code here and/or call the base class
AfxMessageBox("somebody come!"); //弹出一个对话框
CAsyncSocket::OnAccept(nErrorCode); //该句是系统自动添加上的

}
//下面是主对话框的一个按纽对应的处理函数:
void CServerDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CPortDlg dlg; //在弹出的dlg对话框中输入服务器的端口号:m_uPort==8000
if(dlg.DoModal()==IDOK)
{
//m_ListenSocket是我在主对话框类中添加的一个成员变量,是CServerSocket类型
m_ListenSocket.Create(dlg.m_uPort);
m_ListenSocket.Listen();
}
}
---------------------------------------------------------------------
下面是客户端程序的一段程序:
void CClientDlg::OnButton1()
{
// TODO: Add your control notification handler code here

m_ConnectSocket.Create();
if(!m_ConnectSocket.Connect("1.2.3.4",8000))
MessageBox("FUCK");
else
MessageBox("connected");


}

不知道是怎么回事,当客户端程序连接服务器时,总是FUCK,FUCK!!!!!!!!而且服务器端没有任何反应!!!!!!!!!!
我头都大了!!!!!!!!1不知道是哪里错了!
跪请各位DGDJ帮帮小弟啊!!!!!!!!1
谢谢了!

carbon107 2004-01-18
  • 打赏
  • 举报
回复
加入OnAccept()的函数里吧
fzd999 2004-01-18
  • 打赏
  • 举报
回复
IP地址错了,确认一下客户端的IP地址

1。2。3。4这个IP肯定不对,呵呵 :)
findingit 2004-01-18
  • 打赏
  • 举报
回复
楼上的说的好!
abrams 2004-01-18
  • 打赏
  • 举报
回复
一个是动作,一个是响应
yaolan1999 2004-01-18
  • 打赏
  • 举报
回复
OnAccept()是一个消息响应事件,是CSocket定义好的,当有消息传过来时就触发。
你的想法是对的。
PM0115 2004-01-18
  • 打赏
  • 举报
回复
谢谢楼上几位了!
PM0115 2004-01-18
  • 打赏
  • 举报
回复
我的邮箱:pm-kgb@163.net
PM0115 2004-01-18
  • 打赏
  • 举报
回复
我改为:
if(!m_ConnectSocket.Connect(("1.2.3.4"),8000))

if(!m_ConnectSocket.Connect(("pm"),8000))
还是不行!!!!!!!!!!
不知道是怎么回事?
哎!
你们能发给我2个最简单的源程序吗?一个服务器端的,一个客户端的,用TCP实现,在WIN2K下调试通过的!
谢谢了
UDX协议 2004-01-18
  • 打赏
  • 举报
回复
hehe,
if(!m_ConnectSocket.Connect(("服务器ip/name"),8000))
PM0115 2004-01-18
  • 打赏
  • 举报
回复
谢谢楼上的,
to楼上的:我是用的TCP连接方式,所以我只指定了服务器的端口号是8000。而且我也按照你的方式将客户端程序改为了:

if(!m_ConnectSocket.Connect(("1.2.3.4"),8000))
原来的是 :if(!m_ConnectSocket.Connect("1.2.3.4",8000))

但是服务器还是没有反应,客户端还是”FUCK“。
我是在WIN2K下。
请问这是怎么回事哦?
我被折磨几天了!
谢谢!
yaolan1999 2004-01-18
  • 打赏
  • 举报
回复
如果还有什么问题连不上,可以用
if(!m_ConnectSocket.Connect("1.2.3.4",8000))
MessageBox("FUCK");
else
MessageBox("connected");

DWORD i = GetLastError();
得到的i在Tool->Error Lookup里查连不上的原因进行相关处理。
yaolan1999 2004-01-18
  • 打赏
  • 举报
回复
首先你要保证,两边的端口号一样。其次("1.2.3.4")这应该是服务器的IP地址,没有"1.2.3.4"这样的IP地址。这样你就连不上服务器,服务器就收不到消息。
加载更多回复(3)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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