Linux Socket Programming by Example-第十八章 实战

第18章主要介绍了一个软件实践项目。

架构: C/S

功能:实现一个股票信息广播发布平台。

这个代码本身对2年工作以上的人来说,毫无参考价值。

主要的是软件本身引发的一些发散思考。

最近智能家电 物联网 大数据 数字医疗等都很火热。

这些设备均涉及到2个网络, 一个是基于WIFI、以太网的局域网

一个是基于ISP服务的互联网。

具体构架:

家里的智能设备     -> WiFi  ->  智能路由器 -> ISP ->  互联网 (远程服务器)

如果将智能路由器扩展下,变成带数据库的本地数据中心,则整体构架如下:

家里的智能设备     -> WiFi  ->  本地数据中心 -> ISP ->  互联网 (远程服务器)

涉及到的问题:

1> 智能设备如何与本地数据中心通讯

多媒体领域目前有DLNA Airplay

2> 本地数据中心如何与远程服务器同步

目前大家的思路是百度与金山各自提供自己的云客户端。

坦率地来说,用户体验并不见得多爽。

3> 如何提供一个通用协议,让各种设备无缝而又安全的共享数据

4> 设备离开局域网后,如何通过互联网安全的与本地数据中心交互。

解决这些信息孤岛,我们才真正能迎来智慧城市的新时代。

目前,就多媒体领域,谈一些自己的看法。

目前,我的手机和平板上装了一堆软件,坦率地来说,都让我很不爽。

我期待的是以下功能:

我想看电影XXX  -> 通过手机某个APP向本地数据中心发请求

-> 本地中心收到我的指令后先搜索本地多媒体数据仓库 -> 有的话直接向我推送数据,并记录我当前行为

-> 放下手机,打开电视,TV通过本地数据中心,知道我当前正在看某电影,提供继续播放功能

如果本地数据中心无该影片,本地数据中心通过我的配置(电信IPTV, 迅雷账号, 搜狐账号,百度等免费影视平台)

-> 搜索并下载电影 -> 做格式转换  -> 将电影push到手机 -> 打开电视或播放机,继续播放。

这才是真正期待的智能时代,而不是打开一个迅雷,先给你来个垃圾网页,等你找半天,再给你放一段垃圾广告,

最后,放下手机,打开电视,再重新做一轮。

坦率地说,我看不出智能在哪!

Linux Socket Programming by Example-第十八章 实战

时间: 2024-11-08 21:56:38

Linux Socket Programming by Example-第十八章 实战的相关文章

Linux内核设计与实现 第十八章

1. 内核调试的难点 重现bug困难 调试风险比较大 定位bug的初始版本困难 2. 内核调试的工具和方法 2.1 输出 LOG 输出LOG不光是内核调试, 即使是在用户态程序的调试中, 也是经常使用的一个调试手段. 通过在可疑的代码周围加上一些LOG输出, 可以准确的了解bug发生前后的一些重要信息. 2.1.1 LOG等级 linux内核中输出LOG的函数是 printk (语法和printf几乎雷同, 唯一的区别是printk可以指定日志级别) printk之所以好用, 就在与它随时都可以

linux c socket programming

原文:linux c socket programming http://54min.com/post/http-client-examples-using-c.html 好文章 PPT http://www.slideshare.net/Arbow/asynchronous-io-programming verygood C: Linux Socket Programming, TCP, a simple HTTP client http://coding.debuntu.org/c-linu

第十八章 SOCKET类的实现

                        第十八章    SOCKET类的实现         这几天反复思考,到底是从上到下.还是从底层开始往上设计?最后.还是决定从上层建筑开始.APO追求的是简单.再简单!强大.再强大!高速.高效!"天下武功.无坚不破.唯快不破!". APO的socket也不外是一种内存文件吧,但socket描述符和其它类型的文件描述符还是略有区别的.APO中的一个用户进程最多可打开64K个非socket类型的文件描述符,而APO系统只是最多可以打开16M个

Linux System Programming 学习笔记(十) 信号

1. 信号是软中断,提供处理异步事件的机制 异步事件可以是来源于系统外部(例如用户输入Ctrl-C)也可以来源于系统内(例如除0) 内核使用以下三种方法之一来处理信号: (1) 忽略该信号.SIGKILL和SIGSTOP不能被忽略. (2) 捕捉并且处理该信号.The kernel will suspend execution of the process's current code path and jump to a previously registered function. SIGK

Linux内核分析——第十八章 调试

第十八章    调试 18.1 准备开始 1.在用户级的程序里,bug表现比较直接:在内核中却不清晰. 2.内核级开发的调试工作远比用户级开发艰难的多. 3.准备工作需要的是: (1)一个bug (2)一个藏匿bug的内核版本 (3)相关内核代码的知识和运气 18.2 内核中的bug 1.内核中的bug多种多样. 2.引用空指针会产生一个oops:垃圾数据会导致系统崩溃. 3.定时限制和竞争条件都允许多个线程在内核中同时运行产生的结果. 18.3 通过打印来调试 一.健壮性 1.健壮性——在任何

第十八章 Linux集群架构

18.1 集群介绍集群概述根据功能划分为两大类:高可用和负载均衡.1)高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务实现高可用的开源软件有:heartbeat.keepalived.后者好用,前者好久未更新了.2)负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2.实现负载均衡的开源软件有LVS.keepalived.haprox

《Linux内核设计与实现》读书笔记 第十八章 调试

第十八章调试 18.1 准备开始          需要准备的东西: l  一个bug:大部分bug通常都不是行为可靠而且定义明确的 l  一个藏匿bug的内核版本:找出bug首先出现的版本 l  相关内核代码的知识和运气 最好能让bug重现,有一些bug存在而且有人没办法让他重现,因为内核与用户程序和硬件间的交互很微妙. 18.2内核中的bug 可以有无数种原因产生,表象也变化多端.代码中的错误往往引发一系列连锁反应,目击者才看到bug. 18.3通过打印来调试 内核提供了打印函数printk

Linux socket编程 DNS查询IP地址

本来是一次计算机网络的实验,但是还没有完全写好,DNS的响应请求报文的冗余信息太多了,不只有IP地址.所以这次的实验主要就是解析DNS报文.同时也需要正确的填充请求报文.如果代码有什么bug,欢迎指正啊.代码排版有点乱... 本文有以下内容 DNS报文的填充和解析 利用socket API传输信息 一.填充DNS请求报文 随便百度一下,就可以知道DNS报文的格式.所以这里只介绍如何填充DNS报文. 首先是填充报文首部: ? 1 2 3 4 5 6 7 8 9 /* 填充首部的格式大致相同,下面的

Linux System Programming 学习笔记(二) 文件I/O

1.每个Linux进程都有一个最大打开文件数,默认情况下,最大值是1024 文件描述符不仅可以引用普通文件,也可以引用套接字socket,目录,管道(everything is a file) 默认情况下,子进程会获得其父进程文件表的完整拷贝 2.打开文件 open系统调用必须包含 O_RDONLY,O_WRONLY,O_RDWR 三种存取模式之一 注意 O_NONBLOCK模式 int fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644