套接字

HTTP和Socket

末鹿安然 提交于 2019-11-29 13:53:37
http://popwang.iteye.com/blog/1055576 2011 - 05 - 23 HTTP和Socket Socket 应用服务器 网络协议 网络应用 防火墙 相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助。 1、TCP连接 要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”: 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭 连接之前,TCP

TCP, Scoket, HTTP

淺唱寂寞╮ 提交于 2019-11-29 13:53:24
1、TCP连接 要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”: 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主 动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终确定断开) 2、HTTP连接 HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础

android 网络编程--socket tcp/ip udp http之间的关系

柔情痞子 提交于 2019-11-29 13:53:06
网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,一般编程人员接触最多的就是应用层和运输层,再往下的就是所谓的媒体层了,不是我们研究的对象。 下面是应用层、运输层,网络层、链路层通信协议概图。我们经常接触到的一般是: http协议:应用层协议,并且http协议是基于tcp连接的,主要解决的是如何包装协议的 tcp协议:运输层协议,通常也叫做tcp/ip协议,主要解决数据如何在网络中传输 udp协议:运输层协议,用户数据报协议,不可靠的协议,只负责把应用层的协议的数据传送到ip层的数据报,而不管数据是否到达。 ip协议:网络层。 socket连接:长连接 http连接:短连接 下面详细介绍网络通信中的几个概念与原理: (1)Socket(套接字) : 套接字( socket)是通信的基石,是支持 TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的 IP地址,本地进程的协议端口,远地主机的 IP地址,远地进程的协议端口。 应用层通过传输层进行数据通信时, TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个 TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与 TCP/

python网络编程-socket

谁说我不能喝 提交于 2019-11-29 13:52:55
一:什么是socket   socket通常也称为作为“套接字”,用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过“套接字”给网络发送请求或者应答网络请求。   socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)   socket和file的区别   1)file模块是针对某个指定的文件进行打开,读写,关闭   2)socket模块是针对服务器端和客户端socket进行打开,读写,关闭 二:socket交互流程    三:说明 服务器端   1)生成socket对象: socket.socket(socket.AF_INET,socket.SOCK_STREAM,0)   参数1:地址族      socket.AF_INET (默认IPV4)      socket.AF_INET6 (IPV6)      socket.AF_UNIX 只能用于Unix系统进程间通信    参数2:类型      socket.SOCK_STREAM 流式socket for tcp(默认)      socket.SOCK_DGRAM 数据报式 socket for udp  

Python 网络编程操作TCP/UDP 初探(一)

社会主义新天地 提交于 2019-11-29 13:15:05
服务器与客户端之间通信模式: 我觉得这个举例是很恰当的。将服务器->客服总线,客户端->客户,新的客户端->客服代表。 客服总线比如说400-xxxxxx这类的电话,一直处于等待状态,当有新的客户来电之后,总线接线员接到电话后,将客户的电话切换给客服代表进行处理。这样空出主线,以便总线接线员可以继续等待新的客户电话。而此时之前接入的客户及对应的客服代表,能够进行他们自己独立的谈话。当有新的客户B进来之后,总线接线员会创建一个新的客服代表进行处理,总线接线员继续进行等待。 接下来我们直接开始撸 1.TCP连接 TCP服务器端: from socket import * from time import ctime HOST = '' # 对bind方法的标识,标识可以使用任何可用的地址 PORT = 21567 # 随机设置的端口号 BUFSIZE = 1024 # 缓冲区大小1KB ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) # 分配TCP服务器套接字 tcpSerSock.bind(ADDR) # 将套接字绑定到服务器地址 tcpSerSock.listen(5) # 开启TCP监听器 while True: print 'waiting fo connection...' # 无限循环中

网络基础:socket模块

独自空忆成欢 提交于 2019-11-29 12:24:10
socket:   套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。 基于TCP协议的socket:tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端 server服务端: #server服务端 import socket sk = socket.socket() #创建服务套接字 sk.bind(('127.0.0.1',8080)) #把地址绑定到套接字 sk.listen() #建立监听链接,能否建立需要accept函数去进行检查 conn,addr = sk.accept() #接收客户端链接,接收值分别为客户端套接字对象与地址信息 ret = conn.recv(1024).decode('utf-8') #接收客户端消息 print(ret) #打印客户端消息 conn.send(bytes('你好',encoding='utf-8')) #用接收到的客户端套接字给客户端发送消息 conn.close() #关闭客户端套接字 sk.close() #关闭服务器套接字(可选) client用户端: import socket sk = socket.socket()

基于TCP协议的socket套接字编程

回眸只為那壹抹淺笑 提交于 2019-11-29 11:48:54
基于TCP协议的socket套接字编程 一、什么是Socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的。 [ 注意:也有人将socket说成ip+port,ip是用来标识互联网中的一台主机的位置,而port是用来标识这台机器上的一个应用程序,ip地址是配置到网卡上的,而port是应用程序开启的,ip与port的绑定就标识了互联网中独一无二的一个应用程序,而程序的pid是同一台机器上不同进程或者线程的标识。 二、套接字发展史及分类 2.1 基于文件类型的套接字家族 套接字家族的名字:AF_UNIX unix一切皆文件,基于文件的套接字调用的就是底层的文件系统来取数据,两个套接字进程运行在同一机器,可以通过访问同一个文件系统间接完成通信 2.2 基于网络类型的套接字家族 (还有AF_INET6被用于ipv6,还有一些其他的地址家族,不过,他们要么是只用于某个平台,要么就是已经被废弃,或者是很少被使用

C#-socket简单同步通信学习

。_饼干妹妹 提交于 2019-11-29 11:17:59
SOCKET原理 一、套接字(socket)概念   套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。   应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应 用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。 二、建立socket连接   建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。   套接字之间的连接过程分为三个步骤: 服务器监听,客户端请求,连接确认。 服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求 客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字

Socket通信实例(C#)

♀尐吖头ヾ 提交于 2019-11-29 11:17:06
SOCKET原理 一、套接字(socket)概念   套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。   应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应 用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。 二、建立socket连接   建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。   套接字之间的连接过程分为三个步骤: 服务器监听,客户端请求,连接确认。 服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求 客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字

【Socket编程】通过Socket实现TCP编程

安稳与你 提交于 2019-11-29 11:11:12
通过Socket实现TCP编程 Socket通信 : 1.TCP协议是 面向对象连接、可靠的、有序的 ,以 字节流 的方式发送数据。 2.基于TCP协议实现网络通信的类: 客户端----Socket类 服务器端----ServerSocket类 一、通信过程(Socket通信模型) Socket通信模型用下图所示: 1、在服务端建立一个ServerSocket,绑定相应的端口,并且在指定的端口进行侦听,等待客户端的连接。 2、当客户端创建连接Socket并且向服务端发送请求。 3、服务器收到请求,并且接受客户端的请求信息。一旦接收到客户端的连接请求后,会创建一个链接socket,用来与客户端的socket进行通信。 通过相应的输入/输出流进行数据的交换,数据的发送接收以及数据的响应等等。 4、当客户端和服务端通信完毕后,需要分别关闭socket,结束通信。 Socket通信实现步骤: 了解Socket通信模型后,就可以简化出Socket通信的实现步骤: 1.创建ServerSocket和Socket 2.打开链接到Socket的输入/输出流 3.按照协议对Socket进行读/写操作 4.关闭输入输出流、关闭Socket 二、Socket和ServerSocket常用方法 ServerSocket常用方法: ServerSocket(int port)—