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

    这个套接字类仅仅只有除了构造函数以外的一个方法OnRead(),当Tcp套接字输入缓冲区有数据可用时,OnRead()将可以被SocketHandler 调用。
    DisplaySocket.h

    #include <TcpSocket.h>
    #include <ISocketHandler.h>
    
    class DisplaySocket : public TcpSocket
    {
    public:
    	DisplaySocket(ISocketHandler& );
    
    	void OnRead();
    };
    #ifdef _MSC_VER
    #pragma warning(disable:4786)
    #endif
    #include "DisplaySocket.h"
    
    // the constant TCP_BUFSIZE_READ is the maximum size of the standard input
    // buffer of TcpSocket
    #define RSIZE TCP_BUFSIZE_READ
    
    DisplaySocket::DisplaySocket(ISocketHandler& h) : TcpSocket(h)
    {
    }
    
    void DisplaySocket::OnRead()
    {
    	// OnRead of TcpSocket actually reads the data from the socket
    	// and moves it to the input buffer (ibuf)
    	TcpSocket::OnRead();
    	// get number of bytes in input buffer
    	size_t n = ibuf.GetLength();
    	if (n > 0)
    	{
    		char tmp[RSIZE]; // <--- tmp's here
    		ibuf.Read(tmp,n);
    		printf("Read %d bytes:\n",n);
    		for (size_t i = 0; i < n; i++)
    		{
    			printf("%c",isprint(tmp[i]) ? tmp[i] : '.');
    		}
    		printf("\n");
    	}
    }
     

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

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享