linux epoll并发服务器怎么主动发数据给客户端
udp还是tcp,如果是tcp需要你把服务器当成客户端主动连接客户端的指定端口,listen后才能send。要么你就手动使用raw socket直接从最上层到最底层直接构造tcp回应包发送,不用bind listen都可以。
推送服务。
推送技术的基础思想是将浏览器主动查询信息改为服务器主动发送信息。 服务器发送一批数据,浏览器显示这些数据,同时保证与服务器的连接。当服务器需要再次发送一批数据时,浏览器显示数据并保持连接。以后,服务器仍然可以发送批量数据,浏览器继续显示数据,依次类推。
扩展资料:
在客户端拖曳技术中,服务器发送一批数据,在HTTP响应或文档头标记中插入指令,让浏览器“在5秒内再次装入这些数据”或“10秒内前往某URL装入数据”。当指定的时间达到时,客户端就按照服务器的指示去做,或者刷新当前数据,或者调入新的数据。
在服务器推送技术中,HTTP 连接一直保持着,直到服务器知道自己已结束发送数据并发送一个结束信号,或者客户端中断连接。而在客户端拖曳技术中,并不保持HTTP连接,相反,客户端被告知何时建立新连接,以及建立连接是获取什么数据。
在服务器推送中,奇妙之处在于“multipart/mixed”格式的 MIME,它能够使一个报文(或HTTP响应)包含许多数据项、在客户端拖曳中,奇妙之处在于HTTP响应头标(或等效的HTML元素),它能告知客户端在指定的延时时间后执行何种动作。
方法太多了,给你提供一种吧。在handle里面重写sessionOpened方法,这个方法表示在客户端连接到服务端后,服务端该做的事。在这个方法里写个发送数据的线程。(一定要线程,不要写循环)。有疑问在M我。
ServerSocket ss = new ServerSocket();
Socket s = ssaccept();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(sgetOutputStream()));
bwwrite("hello!");
已经有连接了那就好办了,直接用连接发送数据,客户端根据指令类别进行响应就可以了。
最好将数据 放在一个类里面 包括 数据,指令 等信息。
比如 发一个 1234,查找用户名指令
你先看指令是什么 然后根据数据1234进行用户名查找
C/S 架构C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。
C/S 架构也可以看做是胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。C/S 架构的优缺点优点:
1C/S架构的界面和操作可以很丰富。
2安全性能可以很容易保证,实现多层认证也不难。
3由于只有一层交互,因此响应速度较快。缺点:
1适用面窄,通常用于局域网中。
2用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户。
3维护成本高,发生一次升级,则所有客户端的程序都需要改变。 B/S架构B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S架构的系统无须特别安装,只有Web浏览器即可。
B/S架构中,显示逻辑交给了Web浏览器,事务处理逻辑在放在了WebApp上,这样就避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被成为瘦客户端。B/S架构的优缺点优点:
1)客户端无需安装,有Web浏览器即可。
2)BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3)BS架构无需升级多个客户端,升级服务器即可。缺点:
1)在跨浏览器上,BS架构不尽如人意。
2)表现要达到CS程序的程度需要花费不少精力。
3)在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。
4)客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)
0条评论