• 欢迎浏览“String me = Creater\忠实的资深Linux玩家;”,请文明浏览,理性发言,有侵犯你的权益请邮件我(creater@vip.qq.com).
  • 把任何的失败都当作一次尝试,不要自卑;把所有的成功都想成是一种幸运,不要自傲。
  •    5年前 (2013-06-07)  Socket library |   3 条评论  15 
    文章评分 0 次,平均分 0.0

    忽略TcpSocket 的input缓冲区,OnRawData() 回调函数可以用来代替 OnRead()方法.
    DisplayRawSocket.h

    #include <TcpSocket.h>
    #include <ISocketHandler.h>
    
    class DisplayRawSocket : public TcpSocket
    {
    public:
    	DisplayRawSocket(ISocketHandler& );
    
    	void OnRawData(const char *,size_t);
    };

    DisplayRawSocket.cpp

    #include "DisplayRawSocket.h"
    
    DisplayRawSocket::DisplayRawSocket(ISocketHandler& h) : TcpSocket(h)
    {
    }
    
    
    void DisplayRawSocket::OnRawData(const char *buf,size_t len)
    {
    	printf("Read %d bytes:\n",len);
    	for (size_t i = 0; i < len; i++)
    	{
    		printf("%c",isprint(buf[i]) ? buf[i] : '.');
    	}
    	printf("\n");
    }
    

    DisplayLineSocket.h

    #include <TcpSocket.h>
    #include <ISocketHandler.h>
    
    class DisplayLineSocket : public TcpSocket
    {
    public:
    	DisplayLineSocket(ISocketHandler& );
    
    	void OnLine(const std::string& );
    };
    

    DisplayLineSocket.cpp

    #include "DisplayLineSocket.h"
    
    DisplayLineSocket::DisplayLineSocket(ISocketHandler& h) : TcpSocket(h)
    {
    	SetLineProtocol();
    }
    
    
    void DisplayLineSocket::OnLine(const std::string& line)
    {
    	printf("Incoming: %s\n",line.c_str());
    }
     

    除特别注明外,本站所有文章均为String me = "Creater\忠实的资深Linux玩家";原创,转载请注明出处来自http://unix8.net/home.php/1446.html

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享