CAsyncSocket 聊天程序

ai454121 2012-03-29 07:29:20
服务器主要连接代码
void CTCPServerDlg::OnAcceptBtn()
{
CString Code = "" ;
m_sockListen.Create(3333) ;
if(m_sockListen.Listen(3)!=0)
m_szRecv = "正在监听端口3333...\r\n" ;
else
m_szRecv = "端口3333监听失败..." ;
UpdateData(FALSE) ;
}

void CTCPServerDlg::OnAccept()
{
SOCKADDR sockAddr ;
int nSockAddrLen = sizeof(SOCKADDR) ;
CString tmp ;
if(m_sockListen.Accept(m_sockServer , &sockAddr , &nSockAddrLen)!=0)
{
tmp.Format("发现客户端连接,来自%d.%d.%d.%d\r\n" ,
(UCHAR)sockAddr.sa_data[2] , (UCHAR)sockAddr.sa_data[3] ,
(UCHAR)sockAddr.sa_data[4] , (UCHAR)sockAddr.sa_data[5] ) ;
m_szRecv+=tmp ;
UpdateData(FALSE) ;
}
}
客户端主要连接代码:
void CTCPClientDlg::OnConnectBtn()
{
// TODO: Add your control notification handler code here
CString lpIP = "1.85.17.134" ;

if(m_sockConnect.Connect(lpIP,3333)!=0)
m_szRecv = "连接成功..." ;

UpdateData(FALSE) ;
}
为什么总是连接不上啊?
...全文
54 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ai454121 2012-04-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

m_sockListen.Create(3333,SOCK_STREAM,FD_ACCEPT) ;
class Sock : public CAsyncSocket 一般需要自己派生类,因为是异步,所以当有数据时,系统会调用OnAccept通知接收连接。
{
public:
bool create(UINT port); 在此处调用Create(3333,SOCK_STREAM,F……
[/Quote]


有没有简单点的方法。。。我是初学者,谢谢大侠。
sumos 2012-03-29
  • 打赏
  • 举报
回复
m_sockListen.Create(3333,SOCK_STREAM,FD_ACCEPT) ;
class Sock : public CAsyncSocket 一般需要自己派生类,因为是异步,所以当有数据时,系统会调用OnAccept通知接收连接。
{
public:
bool create(UINT port); 在此处调用Create(3333,SOCK_STREAM,FD_ACCEPT)注意第三个参数,指明事件类型
void OnAccept(int e); 在此处接收连接
};

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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