我想做个聊天室软件,我是初学者还不太理解csocket,我是这么写的,
首先在服务端的OnInitDialog()里面初始化:
CMySocket listing;
listing.Create(6080,SOCK_STREAM,"127.0.0.1");
listing.Bind(6080,"127.0.0.1");
listing.Listen(5);
listing.Accept(m_sndSocket); //m_sndSocket 是CSocket的一个实例.
但是程序一运行就不动了.知道客户端连接上了才有反映.好像是一直等待连接,没有连接就一直不动似的.我发现把accept去掉就没有这个情况了,但是没这个就不能接收client端的连接了,请问是不是该把accept这个函数放到别的地方或者哪个事件里面去??谢谢指点.
首先在服务端的OnInitDialog()里面初始化:
CMySocket listing;
listing.Create(6080,SOCK_STREAM,"127.0.0.1");
listing.Bind(6080,"127.0.0.1");
listing.Listen(5);
listing.Accept(m_sndSocket); //m_sndSocket 是CSocket的一个实例.
但是程序一运行就不动了.知道客户端连接上了才有反映.好像是一直等待连接,没有连接就一直不动似的.我发现把accept去掉就没有这个情况了,但是没这个就不能接收client端的连接了,请问是不是该把accept这个函数放到别的地方或者哪个事件里面去??谢谢指点.
麻烦您发个例子给我.谢谢.
你可以在OnAccept时调用Accept(),建立一个以CSOCKET为基类的新类,在ONACCEPT下再ACCEPT即可,用不着多线程 前面已经有人说的狠清楚了