前言
前几天设计Android手机和服务器之间数据交互应用,对实现数据传输这个环节,产生了疑惑。Socket和http协议都可以实现数据传输,但两种传输方式有什么 各自的特点,和缺点,如何选择合适的传输方式。
1 数据传输方式
1.1 Socket传输的定义和其特点
所谓socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有UDP和TCP两个协议。Socket处于网络协议的传输层。
UDP协议:广播式数据传输,不进行数据验证
TCP协议:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流,
Socket 传输的特点:
优点
1) 传输数据为字节级,传输数据可自定义,数据量小(对于手机应用讲:费用低)
2) 传输数据时间短,性能高
3) 适合于客户端和服务器端之间信息实时交互
4) 可以加密,数据安全性强
缺点:
1) 需对传输的数据进行解析,转化成应用级的数据
2) 对开发人员的开发水平要求高
3) 相对于Http协议传输,增加了开发量
1.2 基于Http协议传输的定义和其特点
目前基于http协议传输的主要有http协议 和基于http协议的Soap协议(web service),常见的方式是 http 的post 和get 请求,web 服务。
基于http协议的传输特点
优点:
1) 基于应用级的接口使用方便
2) 程序员开发水平要求不高,容错性强
缺点:
1) 传输速度慢,数据包大(Http协议中包含辅助应用信息)
2) 如实时交互,服务器性能压力大。
3) 数据传输安全性差
2 各数据传输方式的适用范围
2.1 Socket传输适用范围
基于Socket传输的特点:Socket 传输方式适合于对传输速度,安全性,实时交互,费用等要求高的应用中,如网络游戏,手机应用,银行内部交互等
2.2 基于Http协议传输的适用范围
基于http协议传输的特点:基于http协议传输方式适合于对传输速度,安全性
要求不是很高,且需要快速开发的应用。如公司OA系统,互联网服务等。
本文转载自:徐文兵的IT博客 原文链接:http://www.cnblogs.com/macroxu-1982/archive/2011/01/12/1933722.html
相关推荐
在本项目中,"TCPNetKit"是一个已经封装好的Socket库,包含了服务器端和客户端的功能,允许两者之间进行消息交互。以下是对这个库的一些详细说明和相关知识点: 1. **Socket基本概念**:Socket是操作系统提供的一种...
最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json。要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台、传输数据格式...
在服务器与客户端交互的场景中,通常只有一个服务器实例来处理所有客户端的请求,因此,采用单例模式非常合适。 在C#中实现TCP Socket服务器的单例,我们需要以下几个步骤: 1. 定义一个SocketServer类,包含私有...
本篇文章将深入探讨“C# Socket服务器与客户端交互”的相关知识点。 首先,Socket在计算机网络中扮演着桥梁的角色,它允许应用程序通过TCP/IP协议进行数据传输。TCP(Transmission Control Protocol)是一种面向...
在IT领域,网络通信是不可或缺的一部分,而TCP...通过`File_client.java`和`File_server.java`这两个文件,我们可以学习到如何在Java中实现TCP服务器和客户端的交互,这对于理解网络编程和开发相关应用至关重要。
总结,Socket服务器和客户端是网络通信的基础,理解其工作原理和实现方式对于开发分布式应用至关重要。无论是在桌面应用如WPF,还是在Web服务中,Socket都能提供强大的数据传输能力。通过不断学习和实践,开发者可以...
- Web服务:HTTP协议就是基于TCP Socket实现的,服务器接收客户端的HTTP请求,然后返回网页内容。 以上内容涵盖了服务器和客户端进程使用SOCKET进行简单通讯的基本原理和步骤。实际开发中,还需要考虑多线程、并发...
服务器和客户端交互是网络编程的核心部分,它允许不同设备通过网络共享数据和执行任务。在C#中,实现这种交互通常涉及以下关键技术: 1. **套接字(Sockets)**:套接字是网络通信的基础,它是进程之间通信的一种...
本文将深入探讨“socket C# 服务器和客户端 图形界面”这一主题,帮助你理解如何利用C#的Socket类创建交互式的网络应用。 首先,让我们了解一下Socket的基本概念。Socket是网络层面上的通信接口,它允许应用程序...
在这个场景中,我们将讨论如何使用Socket实现服务器与客户端的交互,并结合链表数据结构来处理连接请求。链表作为一种动态数据结构,能有效地管理多个客户端连接,尤其是在服务器需要处理大量并发连接时。 首先,...
C++作为一门强大的编程语言,可以很好地实现Socket接口,构建服务器和客户端应用。在这个项目中,我们将探讨如何使用C++在Visual Studio 2008环境下实现Socket服务器和客户端的基本功能。 首先,Socket在C++中主要...
在本项目中,"C#使用SuperSocket实现自定义协议实现CS架构服务器和客户端程序设计"),开发者利用C#编程语言以及SuperSocket开源库构建了一套C/S(客户端/服务器)架构的应用。SuperSocket是一个轻量级、高度可扩展的...
### Socket服务器和客户端程序知识点详解 #### 一、Socket网络编程概述 Socket是网络通信的基础,它提供了一种进程间通信机制,允许不同计算机上的进程通过网络进行数据交换。在本例中,我们关注的是服务器端与...
同时,使用合适的日志框架记录服务器和客户端的交互,便于排查问题。 总之,SuperSocket为开发者提供了构建网络服务器的便利工具,其易用性和灵活性使其成为.NET环境中实现服务器应用的理想选择。通过结合Winform...
总的来说,这个"socket客户端,可连接多个服务器"的实现涉及了Socket编程的基础,TCP连接的建立与恢复,以及客户端的错误处理和重连策略。理解这些知识点对于开发分布式系统、网络应用或者其他需要网络通信的项目都...
C# Socket 与服务器Socket交互 客户端
Socket分为两部分:服务器端(Server Socket)和客户端(Client Socket)。服务器端创建一个监听套接字,等待客户端的连接请求;客户端则通过连接套接字向服务器发起连接。 在Python中,我们可以使用内置的`socket`...
在本项目中,我们有一个服务器端(ServerSocket)和多个客户端(Socket),它们通过TCP/IP协议进行通信,实现即时消息的交换。 首先,让我们了解一下Java中的Socket。Socket是Java提供的用于网络通信的接口,它基于...
在"服务器客户端"的场景中,我们通常会有多个客户端同时连接到服务器。在这种情况下,服务器需要能够处理并发连接,这可能涉及到多线程或者异步I/O。对于C++,可以使用线程池或select/poll/epoll等I/O复用机制来处理...