当前位置: 技术问答>linux和unix
一种网络协议的实现
来源: 互联网 发布时间:2016-05-21
本文导语: 我最近看了一个网络协议,客户端可以主动向服务端请求信息,服务端也可以将一些事件(如日志)主动反馈给客户端, 服务端多个线程都可能随时产生日志,我应该怎么来实现这个模型呢? 客户端向服务器请求信...
我最近看了一个网络协议,客户端可以主动向服务端请求信息,服务端也可以将一些事件(如日志)主动反馈给客户端,
服务端多个线程都可能随时产生日志,我应该怎么来实现这个模型呢?
客户端向服务器请求信息用1个socket 1个线程就能完成,那么其他线程产生的日志我应该通过什么方式送到客户端呢?
谢谢大家了!!!
服务端多个线程都可能随时产生日志,我应该怎么来实现这个模型呢?
客户端向服务器请求信息用1个socket 1个线程就能完成,那么其他线程产生的日志我应该通过什么方式送到客户端呢?
谢谢大家了!!!
|
未完就发了,sorry!
(1)将一些事件(如日志)产生的信息放在一块内块中,简单点,就一个struct数组吧,每个struct 里放一个标志,false, or true,
当有将一些事件(如日志)发生时,你把将一些事件(如日志)相关数据写到struct数组里的一个struct里去,假如标志位是false,写完了之后呢,把其把成true,服务器就从struct数组里的数据发出去!
服务器发送完数据之后要把标志位取反!
(1)将一些事件(如日志)产生的信息放在一块内块中,简单点,就一个struct数组吧,每个struct 里放一个标志,false, or true,
当有将一些事件(如日志)发生时,你把将一些事件(如日志)相关数据写到struct数组里的一个struct里去,假如标志位是false,写完了之后呢,把其把成true,服务器就从struct数组里的数据发出去!
服务器发送完数据之后要把标志位取反!
|
就直接像那套接字写啊! 不过注意2条
1. 不同线程 要同步 可以用 pthread_mutex_t 或者 ACE_Thread_Mutex 取决于你的线程库
2. 保证你的线程锁的粒度 正好是 1条完整的日志记录。
|
这跟协议毫无关系...
|
如果把这个称之为协议,那应该是你自己的私有协议。说白了,是你的程序的设计问题。呵呵。