cppsocket库基本用法
来源:互联网 发布:影院数据 阿里云 编辑:程序博客网 时间:2024/05/21 04:39
cppsocket是一个开源包,大家可以到如下网站下载
http://cppsocket.cvs.sourceforge.net/
1.建立一个TCP服务器端
class HttpServerSocket:public HTTPSocket
{
public:
ApHttpServerSocket(SocketHandler& sockethandler);
~ApHttpServerSocket(void);
void OnFirst();
void OnHeader(const std::string& key,const std::string& value);
void OnHeaderComplete();
void OnData(const char *,size_t);
}
// 主程序
SocketHandler handler;
handler.SetSocks4Host("127.0.0.1");
ListenSocket<HttpServerSocket> listenSocket(hanlder);
listenSocket.Bind(8088); //端口自设
handler.Add(listenSocket);
while(handler.Count()>0)
{
handler.Select(1,0);
}
这样如果监听客户端的连接, ListenSocket就会为之创立一个HttpServerSocket对象,而接收到的http消息皆可在回调函数中得到.
2.TCP客户端 cppsocke开源包中的HttpPostSocket类发送消息时格式为:
head,head,.... +Field: 文本 +Field+文件 即可以是纯文字,或文字,文件相混合的消息.用起来也相当方便
我们也可以构建一个自己postSocket,只用来发送消息,格式为:
head,head,....+文本
class MyHttpPostSocket:public HTTPSocket
{
public:
MyHttpPostSocket(ApHttpHandler* handler,const char* url);//定义可copy HttpPostSocket类的构造函数内容
~MyHttpPostSocket(void);
void OnFirst();
void OnHeader(const std::string& key,const std::string& value);
void OnHeaderComplete();
void OnData(const char *,size_t);
void Open();
void OnConnect(); //定义可copy HttpPostSocket类OnConnect函数内容
void OnDisconnect();
void setBody(const char* body); //
}
// 主程序
SocketHandler handler;
ApHttpPostSocket postSocket (handler,url);
postSocket.setBody("你相发的消息");
postSocket.Open();
handler.Add(postSocket);
while( handler.Count()>0)
{
handler.Select(1,0);
}
//这样就可以发送消息出去,并在回调函数里查看服务器端的回复(注:回复2XX,4XX,5XX也是在服务器端要自己定义的,回调函数只能侦听到该request的回复,然后应该通过setDeleteByHandler把自己delete掉,而要发送消息只能重新建立一个MyHttpPostSocket)
用起来也不舒服,但小组选用的开源库是这个,没办法.跟着学罗.
写此文志在抛砖引玉,如果大家有好的cppsocket开源包讨论组,请留号,谢谢
- cppsocket库基本用法
- Re库基本用法
- 基本用法
- 基本用法
- Android-PullToRefresh下拉刷新库基本用法
- C 语言 json 库的基本用法
- Android-PullToRefresh下拉刷新库基本用法
- Android-PullToRefresh下拉刷新库基本用法
- UJMP 矩阵库的基本用法
- Eigen库的配置和基本用法
- 基本常用控件基本用法
- 基本常用控件基本用法
- gdb基本用法
- rpm的基本用法
- sfc的基本用法
- GDB基本用法zt
- GDB基本用法
- vi 的基本用法
- 给ActiveX控件加上数字签名的步骤
- 游戏消息处理
- 如何调试和使用ActiveX控件
- Posix线程编程指南
- 链表倒转等操作完整程序
- cppsocket库基本用法
- WEB2.0
- C++入门练习 76题(1)
- 备份与还原数据库
- 几个不错的PHP学习网站推荐
- [Oracle]高效的PL/SQL程序设计(五)--调用存储过程返回结果集
- scratchbox foreign toolchain 制作
- 写得蛮好的linux学习笔记[转]
- 给狂爱程序设计的朋友们的一封信