Http与Socket小谈】的更多相关文章

http与socket是网络编程中最为重要的概念,不管是客户端还是服务端,都是最为重要的部分,以下简述两者的关系和区别(个人见解). Http 定义 基于应用层的超文本传输协议.通常承载于TCP/IP协议之上,有时也承载于TLS或SSL协议层之上,即https. 特点 必须是客户端请求,服务端才能响应,无法由服务端自主发起. 网络连接为短连接,在请求结束后,就会自动释放本次连接. 优点 基于应用层的接口,简单易用,非常容易上手,对开发者要求较低 缺点 传输速度有限,数据量较大 对服务器性能要求较…
DevStore开发人员服务有奖征文:小谈新浪微博开放平台 笔者接入新浪微博开发平台也有一段时间了,对整个平台的接入也算比較熟悉,新浪提供了统一的API接口,能够让开发人员更方便的使用API来实现自己的应用开发.开发人员能够在"http://open.weibo.com/wiki/首页"这个URL地址查看新浪开放平台给开发人员提供丰富的文档支持.方便开发人员熟悉新浪开发平台提供的全部服务. 例如以下图所看到的: 开发人员在開始使用新浪微博SDK的时候.须要先创建自己的应用.主要分为:•…
今天,我们来谈一谈Java里的线程. 一.进程与线程的基本概念 大家可能没听过线程这个概念,但是相信,用计算机的朋友都听过进程这个概念.打开电脑的任务管理器,我们就可以看到许多进程.它们主要分为三类,应用进程.后台进程与windows进程.我们可以把进程称为程序运行的一个单位,而线程,就是一个比进程还小的运行单位. 引用一段百度而来的关于进程与线程的资料: 进程和线程都是由操作系统所体现的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性. 进程和线程的区别在于: 简而言之,一个程序至…
引言 项目中用到了Socket,这里做个控制台小示例记录一下. Client 客户端的Receive用了异步方法,保持长连接,可以随时发送消息和响应服务端的消息,如下 static string ClientReceiveMessage = ""; ]; static void Main(string[] args) { IPHostEntry ipHost = Dns.Resolve("127.0.0.1"); IPAddress ipAddress = ipHo…
一晃眼,有两年没有写博客了,回顾前两年,各种奔波,各种忙碌,也有不少的收获.从今天开始,我要把这些收获都分享在这里. 其实这两年,对我影响最大的是开发流程.总所周知,一个好的开发流程,对于项目的进行,更新和维护都起着至关重要的作用.Scrum适用于一些开发周期长,需求不明确,或者随时间渐进明确,频繁更新的项目.然而,现在国内的一些公司,甚至一些大公司,都对这块不太重视,或者做得不够透彻.从而程序猿们天天加班,苦不堪言. 我们先来看张我通过实际经验画的图流程图,红色圈圈出来的是我认为比较容易忽略的…
苹果对开发者主要分为3类:个人.组织(公司.企业).教育机构.即: 1.个人(Individual) 2.组织(Organizations) 组织类又分为2个小类: (1)公司(Company) (2)企业(Enterprise) 3.教育机构(Educational Institutions) 更多内容介绍,请看苹果官方说明:Choosing a Membership 我们经常最关注的是个人.公司.企业这3类,公司和企业都属于"组织"大类,下面对这3个做下简单对比: 1.个人(Ind…
昨天遇到了一个很棘手的问题,就是手机端调用web端的页面,如果用编辑器插入的内容页面中有电话的的数据就要变一下格式,让手机端可以实现拨号的功能. 研究了半天就是没一点头绪,但是偶尔看到数据中每一个电话的附件都会[#calltel#:]此字段(这个字段应该是程序在使用editor插入电话时规定的标识吧),那就更好了,就发现出口了. 忽然灵机一动想到个方法,一:用正则判断[#calltel#:],二:然后再在页面head标签中加一个meta标签这样就可以了. 但是问题又来了,第一步怎么实施呢?而且自…
React有三个东西,React JS 前端Web框架,React Native 移动终端Hybrid框架,React Web是一个源码转换工具(React Native 转 Web,并之所以特别提出,是觉得还有些用处). React.React Native共同特点 起源 Facebook 的内部项目 理念 Learn once, write anywhere,而不是Write once, run anywhere.简单说就是,让你在Web.Mobile原生的开发套路一样,但你还是需要写两套代…
Grunt是基于Node.js的项目构建工具.它可以自动运行你所设定的任务.Grunt拥有数量庞大的插件,几乎任何你所要做的事情都可以用Grunt实现. 一头野猪映入眼帘,意:咕噜声 中文网站:http://www.gruntjs.net/ 英文网站:http://gruntjs.com/ 为何要用构建工具? 一句话:自动化.对于需要反复重复的任务,例如压缩(minification).编译.单元测试.linting等,自动化工具可以减轻你的劳动,简化你的工作.当你在 Gruntfile 文件正…
1.静态的表现形式,在PHP中定义一个静态变量需要加入一个关键字——static,静态对象是属于类的,非静态对象是属于对象的 class Fenbi { public $changdu;//属于对象的 public static $yanse;//属于类的,静态 } 静态对象的输出方法是:[类名::静态变量名],这里注意一定要是英文状态下的双冒号,否则会报错 class Fenbi { public $changdu;//属于对象的 public static $yanse;//属于类的,静态…
1什么是socket? socket的英文原义是“孔”或“插座”.作为进程通信机制,取后一种意思. 通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄. (其实就是两个程序通信用的.)是客户端与服务器通信的桥梁 2.两种类型 流式:安全 效率低 针对于面向连接的tcp服务应用 报文:不安全(丢失,顺序混乱,在接收端要分析重排及要求重发) 效率高 是一种无连接的Socket,对应于无连接的UDP服务应用 3.Socket的通讯过程 1.using System.net 网络节点(ip…
@override是jdk1.5增加的注解,主要是用来声明子类的某方法覆盖了父类的某方法.非常简单的注解,但是有个小问题: 项目最开始使用的是jdk1.6,mvc模式:接口 ----> 实现类.后来项目改成了jdk1.5,结果所有实现类上的有@override注解的方法全部报错,把@override注解删掉就好了.当时感觉比较怪,因为@override是jdk1.5的版本出来的,为什么1.5却不支持? 现在jdk1.5环境下,做如下测试: 1.提供一个接口和抽象类: /*接口*/ interfa…
1. char      固定长度,最长n个字符.   2. varchar      最大长度为n的可变字符串. (n为某一整数,不同数据库,最大长度n不同)   char和varchar区别:      varchar必char节省空间,但在效率上比char稍微差一些.      说varchar比char节省空间,是因为varchar是可变字符串,比如:用varchar(5)存储字符串“abc”,只占用3个字节的存储空间,而用char(5)存储,则占用5个字节(“abc  ”).    …
ThinkPHP也是一个MVC框架,分视图.控制器和模型,和Yii框架相比相对较好理解,并且是轻量级的框架(相对于Yii来说),在使用Yii框架时候如果将框架放在项目文件中,用编辑器打开文件都比较慢,亲身的体会.TP代码也分工明确,便于网站的维护和管理.现在也有很多公司在用这个框架.  一.TP的目录结构 library----------------第三方资源包 ThinkPHP jquery kindeditor application------------应用程序 Common-----…
服务端 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; using System.Threading; namespace SocketDemo { class Program     {         static Socket serverSocket;         stati…
最近看完慕课网 “node.js 建站攻略”后, 对mongodb 操作有了进一步认识, 为了进一步巩固该数据库知识, 于是使用学到的知识搭建一个最简单的mongoDemo. 搭建完成后已放到Github分享, 详情请戳 mongoDemo源码 感兴趣的小伙伴可以看看:回到主题, 完成该小项目后对nodejs后台开发有了一些小悟,本文就req最常用的参数获取做个小结: node.js后台开发基本都会碰到使用 req.param().req.params . req.query. req.body…
原型(prototype)在js中可是担当着举足轻重的作用,原型的实现则是在原型链的基础上,理解原型链的原理后,对原型的使用会更加自如,也能体会到js语言的魅力. 本文章会涉及的内容 原型及原型对象 原型链(JavaScript核心部分) 类的继承 instanceof constructor 我们先用一个构造器来实现一个构造函数: function A(){ this.mark = "A"; this.changeMark = function(){ this.mark += &qu…
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符.要是在这0.2秒里面,又有新 的字符传过来,那么这个字符将丢失.于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符.一个叫做“回车”,告诉打字机把打印头 定位在左边界:另一个叫做“换行”,告诉打字机把纸向下移一行.这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二. 后来…
最近又学习了一下,感觉还有好多东西不知道,以后积累多一点再从新写一个. 在android上捣鼓了一下linux的内核rootkit,虽然中途遇到了无数坑,至今也没有完全写完,打算先好好啃一段时间linux内核,和理解一下android的linux内核的安全机制再继续写.但还是收获不小,想分享一下学习的一点小心得. 一个完整的内核rootkit大致可分为3个部分,分别为一:自身隐藏,二:信息收集,三:系统攻击.本文也打算从这三方面入手,其中自身隐藏和pc端大体一致.鉴于pc比android运行方便…
Teamwork中我的工作,既然写了就直接放上来吧. 一.Bing搜索的相关背景 第一,必应搜索前几年的发展重点在于欧美市场,并且取得了一定的成效:根据 Hitwise 的统计数据,Bing 在 2011年3 月份市场占有率突破了 30% 大关,达到 30.01%(http://www.hitwise.com/us/press-center/press-releases/experian-hitwise-reports-bing-powered-share-of-s/).而另一方面,由于对汉语的…
在python中列表的常用方法主要包括增加,删除,查看和修改.下面以举例子的方法具体说明,首先我们创建两个列表,列表是用[ ]表示的,里面的元素用逗号隔开. a=[‘hello’,78,15.6,‘你好’] b=[78,1,1,4,5,6,1] 一.增加 方法一:a.append('tom')    # 在a列表最后追加一个元素tom ['hello', 78, 15.6, '你好', 'tom'] 方法二:a.insert(0,'tom')    #把Tom这个元素放到a列表索引号为0的位置,…
#include <stdio.h> #include <stdlib.h> #define N 5 int main() { double score[5]; int i; for (i = 0; i< N ;i++) { printf("请输入第%d门课的成绩:",i+1); scanf("%lf",&score[i]); } printf("---------------------\n"); int…
写一个客户端,实现给服务端发送hello World字符串,将客户端发送的数据变成大写后返回 本机id是192.168.xx.xy 服务端 import socket soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) soc.bind(('192.168.xx.69', 8080)) #服务端用本机IP地址 soc.listen(5) print('xxxx') conn,addr = soc.accept() print('yyyy…
socket,是一个实现了双向通信的链接. 将http比喻为轿车,承载数据.传递数据,那么socket,就是轿车的发动机,它轿车动起来.…
现在Jquery框架对于开发人员基本上是无人不知,无人不晓了,用起来十分的方便,特别是选择器十分强大,提高了我们的开发速度.但是好多人也只是停留在了会用的基础上,我个人觉得会用一个框架不算什么,只能说明你对那个框架比较熟悉,知道里面的思想和实现才是王道.有好多大牛对Jquery框架进行了剖析,今天我只是根据我的见解来分析一下. 一段代码如下: (function (win) { var _$ = function (selector, context) { return new _$.proto…
MVC (Modal View Controler) 本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如一批统计数据你可以分别用柱状图.饼图来表示.C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新. 模型-视图-控制器(MVC)是Xerox PARC在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用.最近几年被推荐为Sun公司J2EE…
1.什么是CLR CLR(Common Language Runtime)公共语言远行时,是一个可由多种编程语言使用的“远行时”.CLR的核心功能(比如内存管理.程序集加载.安全性.异常处理和线程同步)可由面向CLR的所有语言使用.CLR不关心开发人员使用哪种语言进行编程,只要编译器面向CLR就可以了,所有,开发人员应该使用自己最适合和熟悉的语言进行编程.所有的编程语言在面向CLR编译器的编译都生成了一个托管模块.托管模块是一个标准的32位的Microsoft Windows可移植执行体(PE3…
 gulp是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务. 外网:http://gulpjs.com/ 中文官网:http://www.gulpjs.com.cn/ 易于使用 通过代码优于配置的策略,Gulp 让简单的任务简单,复杂的任务可管理. 构建快速 利用 Node.js 流的威力,你可以快速构建项目并减少频繁的 IO 操作. 插件高质 Gulp 严格的插件指南确保插件如你期望的那样简洁高质得工作. 易于学习 通过最少的 API,掌握 Gulp 毫不费力,构建工作尽…
先做草稿,稍后完善, javascript for (var i = 0; i < jsonmsg.length; i++) { var ischecked = false; for (var j = 0; j < jsonarg1.length; j++) { console.info(jsonarg1[j]["Tag_ID"] + "----" + jsonmsg[i]["TabId"]); if (jsonarg1[j][&qu…
一.JSON的语法可以表示以下三种类型的值: 1.简单值:字符串,数值,布尔值,null 比如:5,"你好",false,null JSON中字符串必须用双引号,而JS中则没有强制规定. 2.对象 比如: { "name":"蔡斌", "age":21, "isRich":false, "school":{ "name":"广东工业大学", &qu…