各位大侠能不能举个CSocket::OnAccept的例子?
小弟新近写的socket程序,可以实现通信,但是服务器端却需要等待客户端的连接,等待期间不能做其他事情,好像可以用CSocket类的派生类的OnAccept函数来解决,但不知具体如何操作,还请各位大侠指教啊!
我的程序如下:
Server端:
if (!AfxSocketInit())
{
AfxMessageBox("Socket Init failed!");
return;
}
CSocket Send, Server;
if (!Send.Create(1026))
{
AfxMessageBox("Socket Send Create failed!");
return;
}
else
{
Send.Listen();
Send.Accept(Server);
}
Server.SendTo("Good", 4, 1026, "192.168.1.107");
Server.Close();
Send.Close();
Client端:
CString ss = "192.168.1.107";
CString Text;
char* buffer = new char[4];
unsigned int port = 1026;
if (!AfxSocketInit())
{
AfxMessageBox("Socket Init failed!");
return;
}
CSocket Receiver;
if (!Receiver.Create())
{
AfxMessageBox("Socket Send Create failed!");
return;
}
else
{
Receiver.Connect("192.168.1.107", 1026);
}
Receiver.ReceiveFrom(buffer, 4, ss, port);
Text = buffer;
Text = Text.Left(4);
AfxMessageBox(Text);
Receiver.Close();
问题点数:50、回复次数:2Top
1 楼chineseoldghost(中国老鬼)回复于 2003-09-02 23:30:33 得分 40
提供一个简单的方法,具体代码我不写了,可以给你提供一下思路。例如一个基于对话框的socket程序,可以再socket.h的类中存储一个指向对话框的指针(CDialog*),然后再在.cpp文件定义的onaccept函数处理中调用指向对话框的指针,并强制转换位具体从CDialog派生的对话框类型的指针,然后调用你的从CDialog派生的对话框的方法来相应显示onaccept接受到的消息,从而完成相应,大体思想都差不多。Top
2 楼GOTO_2002(mmmttt)回复于 2003-09-09 12:50:34 得分 10
UP一下~~~最好哪位能举一个消息例子。Top



