csocket 相关
来源:互联网 发布:搞笑韩剧 知乎 编辑:程序博客网 时间:2024/05/09 03:22
如何使用WinSocket进行通讯
// 从CAsyncSocket类派生出自己的类CMySocket;从CSocket类派生出CListenSocket类。
// 实际上进行通信的是两个CMySocket类的实例。而CListenSocket类只是用于服务端
// 进行监听用的。一旦它收到客户端的连接请求,它将使用一个CMySocket类实例来接受
// 连接请求。连接成功后,服务端的CMySocket类实例与客户端的CMySocket类实例就可以
// 进行通信了。注意,重载CListenSocket类中的OnAccept函数,代码如下:
CMySocket* pSocket = new CMySocket; // 要保证pSocket在函数返回后还存在。
if(!Accept(*pSocket)) return; // 关键是此句。
// 重载CMySocket类中的OnReceive函数,代码如下:
char ch;
int iErrorCode = Receive(&ch, 1); // 接收一个字符
if(iErrorCode == 0 || iErrorCode == SOCKET_ERROR){ // 接受出错
AfxMessageBox( "接收错误! "); // 显示出错信息
return; // 函数返回
}
if(ch == '\r '){ // 正常情况,判断接收到的字符是否等于 '\r '。
AfxMessageBox(m_strText); // 将接收到的信息显示出来。
m_strText = " "; // 将接收缓冲区清空。
}else{ // 字符不是 '\r '。
m_strText += ch; // 将字符添加到缓冲区后面。
}
最后还要创建关闭套接字的函数。
ShutDown(2);
Close();
// 从CAsyncSocket类派生出自己的类CMySocket;从CSocket类派生出CListenSocket类。
// 实际上进行通信的是两个CMySocket类的实例。而CListenSocket类只是用于服务端
// 进行监听用的。一旦它收到客户端的连接请求,它将使用一个CMySocket类实例来接受
// 连接请求。连接成功后,服务端的CMySocket类实例与客户端的CMySocket类实例就可以
// 进行通信了。注意,重载CListenSocket类中的OnAccept函数,代码如下:
CMySocket* pSocket = new CMySocket; // 要保证pSocket在函数返回后还存在。
if(!Accept(*pSocket)) return; // 关键是此句。
// 重载CMySocket类中的OnReceive函数,代码如下:
char ch;
int iErrorCode = Receive(&ch, 1); // 接收一个字符
if(iErrorCode == 0 || iErrorCode == SOCKET_ERROR){ // 接受出错
AfxMessageBox( "接收错误! "); // 显示出错信息
return; // 函数返回
}
if(ch == '\r '){ // 正常情况,判断接收到的字符是否等于 '\r '。
AfxMessageBox(m_strText); // 将接收到的信息显示出来。
m_strText = " "; // 将接收缓冲区清空。
}else{ // 字符不是 '\r '。
m_strText += ch; // 将字符添加到缓冲区后面。
}
最后还要创建关闭套接字的函数。
ShutDown(2);
Close();
- csocket 相关
- csocket 相关3
- CSocket socket相关方法 知识点
- CSocket、winsock
- Csocket基本原理
- Csocket 服务器端
- CSocket问题
- Csocket基本原理
- MFC CSocket
- MFC CSocket
- CSocket详解
- CSocket详解
- MFC下CSocket编程详解(CSocket 多线程)
- CSOCKET文件传输函数
- MFC的Csocket类
- CSocket类编程模型
- Socket,CAsyncSocket,CSocket介绍
- CAsyncSocket,CSocket的使用方法
- 如何开发线程安全的Servlet
- wireshark识别RTP包
- 工作一年小回顾
- poj 2945 Find the clones (tire树)
- Servlet容器如何同时来处理多个请求
- csocket 相关
- Motorola ME525+ 桌面显示GPRS控制开关的方法
- Windows批处理命令学习二
- 遇到Warning: Unknown: 1 result set(s) not freed. Use mysql_free_result to free r
- Android 前置摄像头调试纪要
- Windows批处理命令学习三
- Spring框架的优点都有什么?
- 交互设计的通用原则
- drawRect vs drawLayer:inContext