SOCKET
文章平均质量分 77
rongwenbin
这个作者很懒,什么都没留下…
展开
-
TCP三次握手及四次挥手详细图解(…
TCP三次握手及四次挥手详细图解 相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. 而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个原创 2013-08-09 17:33:56 · 594 阅读 · 0 评论 -
网络编程释疑之:同步,异步,阻塞,非阻塞
一讲到网络编程的I/O模型,总会涉及到这几个概念。问了很多人,没几个能清晰地讲出他们之间的区别联系,甚至在网络上也有很多不同的观点,也不知是中国文字释义的博大精深,还是本来这几个概念就是绕人不倦。今天我也来给大家讲解一下我对这几个概念的理解。既然网络上众说纷纭,不如找个权威参考一下,这个权威就是《UNIX网络编程:卷一》第六章——I/O复用。书中向我们提及了5种类UNIX下可用的I/O转载 2015-09-23 14:26:12 · 674 阅读 · 0 评论 -
同步与异步、阻塞与非阻塞
看了一些这两个概念的解释,感觉不分场景的笼统理解是不对的,下面陈述一下我的理解: 这是两对概念,用在不同的语境会有一些不同的含义,不能一概而论。整体来说,同步就是两种东西通过一种机制实现步调一致,异步是两种东西不必步调一致。 一、同步调用与异步调用:在用在调用场景中,无非是对调用结果的不同处理。我理解同步调用就是调用一但返回,就能知道结果,而异步是返回时不一定知道结果,转载 2015-09-23 15:07:02 · 324 阅读 · 0 评论 -
同步/异步与阻塞/非阻塞的区别
这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方。一、首先来解释同步和异步的概念,这两个概念与消息的通知机制有关。举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的号码,等到排到我这一号时由柜台的人通知我轮到我去办理业务了。前者(排队等候)就是同步等待消息,而后者(等待别人通知)就是异步等待消息。在异步消息处理中,等待消转载 2015-09-23 15:02:14 · 423 阅读 · 0 评论 -
怎样理解阻塞非阻塞与同步异步的区别?
http://www.zhihu.com/question/19732473老张爱喝茶,废话不说,煮开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。1 老张把水壶放到火上,立等水开。(同步阻塞)老张觉得自己有点傻。2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)老张还是觉得自己有点傻,于是变高端了,买了转载 2015-09-23 14:54:26 · 471 阅读 · 0 评论 -
mina自定义编解码器接收处理byte数组(同时解决数据传输中的粘包、缺包问题)
我们在自定义传输协议时,通常都是采用字节数组的方式进行传送,如何正确接收和解码byte数组?假设我们自定义了传输协议: 字节数组的前4个字节是要传输的数据长度,后面跟数据。我们用mina可以这样处理:1.自定义编码器ByteArrayEncoder.javaimport org.apache.mina.core.session.IoSession;import org.转载 2015-09-15 14:38:14 · 1018 阅读 · 0 评论 -
Web 通信 之 长连接、长轮询(long polling)
基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。 一、什么是长连接、长轮询?用通俗易懂的话来说,就是客户端不停的向服务器发送请求以获取最新的数据信息。这里的“不停”其实是有停止的,只是我们人眼无法分辨是否停止,它只是一种快速的停下然后又立即开始连接而已。 二、长连接、长转载 2015-09-11 16:05:42 · 411 阅读 · 0 评论 -
webim如何使用http长轮询保证消息的绝对实时性
一、webim如何实现消息推送webim通常有三种方式实现推送通道:1)WebSocket2)FlashSocket3)http轮询其中1)和2)是用Tcp长连接实现的,其消息的实时性很好理解,但这两种方案都存在一些局限性,不通用微信资讯(wribao.php230.com)。。方案3)才算是webim实现消息推送的“正统”方案,用http短连接轮询的方式实现“伪长连接”,转载 2015-09-11 16:03:59 · 1764 阅读 · 0 评论 -
纯C++的Socket访问Http封装类
纯C++的Socket访问Http封装类1.项目中要使用c++++来访问Web服务器,从网上找了个C++的封装类,其中调用了MFC,在VC2005上用能用,但是移植到VC2003就出问题了,干脆修改成了纯C++的,不敢独享,share之。2.以下是调用方法:[cpp] view plaincopyprint?#include "stdafx.转载 2015-08-31 17:48:18 · 769 阅读 · 0 评论 -
用socket实现自己的HTTP代理服务器
下面是一个先前我用socket实现HTTP代理服务器的例子,代码很简单我就不一一解析了,要注意的是:当该代理服务器收到IE发来的请求时,要将IE请求行中的webserver的域名(或者IP)剥去,再将请求转发给webserver,如果不注意这点而是直接毫无处理的把IE请求信息直接发给webserver某些网站会显示不了网页,比如新浪,pfan,这是测试时发现的,其他就没什么可以说的了。实际上能否完转载 2015-08-31 17:44:18 · 6499 阅读 · 0 评论 -
通过一个Socket例子理解Http协议(实战Java Web服务器--使用HTTP协议和JAVA类实现)
Web服务器与客户端的通信使用HTTP协议(超文本传输协议),所以也叫做HTTP服务器。用Java构造Web服务器主要用二个类,java.net.Socket和java.net.ServerSocket,来实现HTTP通信。因此,本文首先要讨论的是HTTP协议和这两个类,在此基础上实现一个简单但完整的Web服务器。 一、超文本传输协议 Web服务器和浏览器通过HTTP协议在In转载 2015-08-31 17:42:32 · 7419 阅读 · 2 评论 -
TCP/IP,http,socket,长连接,短连接——小结。
概要: 之前对这几个概念有点糊涂,查阅了些资料,稍微概括下他们的区别吧。如有错误,请拍~~~先看图:TCP/IP是什么? TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。转载 2015-08-31 17:29:20 · 442 阅读 · 0 评论 -
浅析socket与http
现在搞开发,很难不碰到http和socket了,原以为这些东西应该是一个基础课程,不过最近例行走读了一些旧代码,发现一些代码存在着明显的瑕疵,因为很多逻辑处理过程不在同一个水平线上,感觉可能是一些基础理论上的理解导致了程序的处理并没有走最优化的路线。兴趣时间所致,随便写几句。一、首选说说httphttp全文是超文本传输协议,是一种万维网常用的协议,它是TCP协议的一种典型上的应用,转载 2015-08-31 17:16:21 · 436 阅读 · 0 评论 -
TCP/IP、Http、Socket的区别
网络由下往上分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层, 三者从本质上来说没有可比性, socket则是对TCP/IP协议的封装和应用(程序员层面上)。 也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输, 而HTTP是应用层协议,转载 2015-08-31 16:57:44 · 355 阅读 · 0 评论 -
linux socket编程Server简单示例
struct sockaddr_in m_stSockAddr;//服务端地址信息struct sockaddr_in remote_addr; //客户端地址信息int m_iSocket;int clientsock;int sin_size;int iRecv;char buf[502]; ///////socket///////转载 2013-08-09 17:33:52 · 594 阅读 · 0 评论 -
linux socket编程代码
#include#include#include#include#include#include#includechar *host_name="127.0.0.1";int port=7778;struct student{ char name[20]; char num[20]; float score;}t={"xiejian","200701415",89转载 2013-08-09 17:33:50 · 499 阅读 · 0 评论 -
TCP协议建立的三次握手过程(转)
实验目的1 如何实现面向连接-----三次握手2 如何实现可靠传输-----顺序号和确认号、重传机制3 通过HTTP协议来证明工具/原料两台虚拟机(2003一台做WEB)。Sniffer Pro软件步骤/方法1.配置好IP地址。2.搭建WEB服务器1)在控制面板里添加删除组件2)选择添加应用程序服务器原创 2013-08-09 17:33:59 · 515 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到转载 2015-09-23 15:11:00 · 379 阅读 · 0 评论