socket连接和http连接的区别
HTTP协议:简单对象访问协议,对应于应用层 ,HTTP协议是基于TCP连接的
tcp协议: 对应于传输层
ip协议: 对应于网络层
TCP/IP是传输层协议,主要解决数据如何在网络中传输;而HTTP是应用层协议,主要解决如何包装数据。
Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。
http连接:http连接就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响应后连接即会断掉;
socket连接:socket连接就是所谓的长连接,理论上客户端和服务器端一旦建立起连接将不会主动断掉;但是由于各种环境因素可能会是连接断开,比如说:服务器端或客户端主机down了,网络故障,或者两者之间长时间没有数据传输,网络防火墙可能会断开该连接以释放网络资源。所以当一个socket连接中没有数据的传输,那么为了维持连接需要发送心跳消息~~具体心跳消息格式是开发者自己定义的
转自:http://blog.csdn.net/xyylchq/article/details/7660915
分享到:
相关推荐
本文将深入探讨如何通过socket接口实现进程间通信,主要围绕"ipc_socket-2"这一主题展开。 Socket是网络通信的基础,但同样可以应用于同一台计算机上的进程间通信。它提供了一种灵活且强大的通信机制,支持不同进程...
标题中的“Modbus-Tcp采用Socket与NModbus两种方式”指的是在实现基于Modbus-TCP协议的通信时,采用了两种不同的技术手段:Socket编程和使用NModbus库。这两种方法都是为了与支持Modbus-TCP协议的设备进行数据交换。...
2. `socket.cpp`:实现文件,实现了Socket类的功能,如创建、绑定、监听、连接、发送和接收数据等。 3. `platform.h`:平台检测和适配的头文件,用于根据当前运行的操作系统选择适当的实现。 4. `win_socket.cpp` 和...
Socket编程是计算机网络编程中的重要组成部分,主要用于实现进程间的网络通信。在这个"Socket服务器和客户端,Console模式"的项目中,我们重点探讨的是基于TCP协议的Socket通信,它使用了Visual Studio 2010作为开发...
实验目标是掌握Socket编程的基本方法,理解客户端与服务器端的区别,并熟练使用Socket类与ServerSocket类。实验内容包括学习Socket编程涉及的类和接口,尤其是基于TCP的Socket编程,以及编写服务器端和客户端程序,...
"安卓端Socket连接的方法aidl+server"这个主题主要涉及到如何在Android客户端(client)和服务器(server)之间建立Socket连接,以及如何利用Android Interface Definition Language (AIDL)来辅助实现这一过程。...
- **TCP与UDP的区别**:TCP是面向连接的、可靠的传输协议,提供顺序数据传输和错误检测;而UDP是无连接的,不保证数据包的顺序和可靠性,但效率较高。 2. **创建Socket** - **ServerSocket的使用**:通过`...
Socket,作为网络通信的基础接口,是实现进程间、机器间通信的关键工具。本书旨在帮助开发者理解和掌握如何利用Socket进行高效、稳定、可靠的网络应用开发。 1. Socket基础: - Socket的定义:Socket是操作系统...
Web服务(WebService)和Socket是两种在互联网上实现应用程序间通信的重要技术。它们在不同的场景下各有优势,但都致力于解决分布式系统中的数据交换问题。本文将深入探讨这两种技术的基本概念、工作原理以及它们在...
在VC++中,我们通常使用`winsock2.h`头文件来包含Socket相关的API,并且需要初始化Winsock库(`WSAStartup`)和在程序结束时清理(`WSACleanup`)。然后,可以创建Socket对象(`socket()`),绑定到本地地址(`bind...
2. **TCP与UDP的区别**: - **TCP(Transmission Control Protocol)**:提供面向连接的服务,确保数据的可靠传输,通过序列号和确认机制来防止数据丢失或重复,适合对数据准确性要求高的场景。 - **UDP(User ...
2. 配置Socket:如果是服务器端,需要调用`bind()`函数绑定Socket到特定的IP地址和端口号,然后调用`listen()`函数开始监听连接请求。如果是客户端,需要调用`connect()`函数连接到服务器的指定端口。 3. 接收和...
在本地Socket通信中,两者的主要区别在于是否需要建立连接和数据传输的顺序保证。 接下来,我们讨论如何用C语言封装Unix域Socket通信。通常,一个简单的库会包含以下五个接口: 1. **创建Socket**:`int create_...
在IT行业中,网络编程是构建分布式系统和互联网应用程序的基础,而Socket编程是网络编程的核心部分。华南农业大学的网络编程课程,由刘汉星老师指导,深入讲解了如何使用Socket进行服务器(Server)与客户端(Client...
2. **TCP与UDP的区别**: - TCP是面向连接的,建立连接前需要三次握手,断开连接时需要四次挥手,确保数据的可靠性。 - UDP则是无连接的,无需建立连接即可直接发送数据,因此速度快,但不保证数据包的顺序和完整...
Socket通信是计算机网络编程中的重要组成部分,主要用于实现进程间的网络通信。在本资源"Socket通信源码(包含客户端和服务端)"中,我们能够深入理解Socket的工作原理以及如何编写相关程序。下面将详细阐述Socket...
2. **TCP与UDP的区别**: - TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它确保了数据的顺序传输和错误校验。 - UDP(User Datagram Protocol)则是无连接的、不...
本文档总结了网络编程面试题的关键知识点,涵盖了 TCP、UDP、Socket、Http 等网络协议的基础知识、网络编程的基本概念、网络协议的分层结构等内容。通过阅读本文档,读者可以了解网络编程的基本原理、网络协议的作用...
2. `bind()`:将Socket与特定的IP地址和端口号绑定。 3. `listen()`:设置Socket为监听模式,等待客户端连接。 4. `accept()`:接受来自客户端的连接请求,返回一个新的Socket描述符。 5. `connect()`:客户端使用此...