1,如何获取客户端的IP地址。
2,我们一般的做法是服务器端侦听,客户端连接,客户端很容易判断是否连接成功,服务器端如何判别客户是否已连接。
我的客户端总是要掉网,我是搞移动开发的。惭愧呀。白搞了4年VC了。
2,我们一般的做法是服务器端侦听,客户端连接,客户端很容易判断是否连接成功,服务器端如何判别客户是否已连接。
我的客户端总是要掉网,我是搞移动开发的。惭愧呀。白搞了4年VC了。
解决方案 »
- 没弄懂WM_PAINT的一些问题
- CString里面有中英文字符串,如何在ASCII编码下求出它的字节数?
- 多线称中需要调用一个回调函数,回调函数如何控制主对话框中的控件
- CtabCtrl控件怎么平面显示
- 窗口最大化如何禁止移动以及拖动?
- 关于宏pragma的问题!!!!!!!!
- 紧急求助:各位前辈,如何在VC++6.0中用工程Win32 Application 做一个空白的应用程序窗口
- 我在ONMOUSEMOVE里得到的坐标值,怎样将他转换成MM_LOENGLISH映射模式的坐标值
- VC在编译上出的错
- 用程序实现:用windows默认的打开方式打开一个文件(如exe, zip, doc等)??
- 求:avi文件格式
- 求救(在线等待)
2、客户端连接时,会有 FD_ACCEPT 事件。
virtual BOOL Accept( CAsyncSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL );
lpSockAddr 就是客户端的地址结构,里面有客户端的IP。accept会使侦听线程挂起,如果线程回复就是客户连接了。
可以做一些“心跳包”的协议来检测客户端是否工作正常。
recv返回0一般表示已经断开了。
服务器端事件FD_CLOSE,是服务器自己判断客户端掉线,还是需要客户端发什末消息。我是针对手机用户的他一旦不在网内,或者按了关机键,系统会优先于程序来响应,在服务器看来程序不会任何正常结束的信息,这样我的服务器在给他发信就导致了服务器程序崩溃。请lhj(努力加油)把“心跳包”的协议来检测客户端说的详细一些。