网络编程

网络编程

房东的猫 提交于 2020-01-20 04:58:49
网络编程 1. 软件开发的架构 C/S架构 B/S架构 2. socket编程 2.1 socket通信流程 2.2 基于TCP协议的socket 2.3 基于UDP协议的socket 2.4 实例(初恋的故事) 2.5 实例(模拟qq聊天室) 3. 黏包现象 3.1 黏包成因 3.2 会发生黏包的两种情况 3.3 黏包的解决方案 4. socket的更多方法介绍 5. 验证客户端链接的合法性 6. socketserver 1. 软件开发的架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发的架构: C/S架构 C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 B/S架构 B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。 Browser浏览器,其实也是一种Client客户端

Java基础 - 网络编程

ぃ、小莉子 提交于 2020-01-20 00:23:56
网络编程 软件结构:两种 C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件 B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等 网络通信协议: 网络通信协议:通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这就 好比在道路中行驶的汽车一定要遵守交通规则一样,协议中对数据的传输格式、传输速率、传输步骤等做了 统一规定,通信双方必须同时遵守,最终完成数据交换 TCP/IP协议: 传输控制协议/因特网互联协议( Transmission Control Protocol/Internet Protocol),是 Internet最基本、最广泛的协议。它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准。它 的内部包含一系列的用于处理数据通信的协议,并采用了4层的分层模型,每一层都呼叫它的下一层所提供的协议来完成自己的需求 协议的分类: java.net 包中包含的类和接口,它们提供低层次的通信细节我们可以直接使用这些类和接口,来专注于网络程序开发,而不用考虑通信的细节 TCP:传输控制协议 (Transmission Control Protocol)。TCP协议是面向连接的通信协议,即传输数据之前, 在发送端和接收端建立逻辑连接,然后再传输数据

「Python网络编程」如何让蔡徐坤同时唱跳rap篮球/初识多线程(二)

痴心易碎 提交于 2020-01-19 21:14:47
博主前言: 通过第一篇文章的学习,读者已经认识了网络编程中的套接字编程,已经具备了实现基于TCP协议和基于UDP协议网络编程中 客户端 的实现。第二篇文章打算让读者感受一下多线程的魅力,通过仔细阅读本篇文章完全可达到一文入门多线程的目的。 1. 几个基本概念 1.1 单核CPU与多核CPU CPU(central processing unit),即中央处理器,是 作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。 所谓单核CPU就是指 同一时刻计算机只能执行一件事情 。即电脑在同一时刻只运行一种程序。 那么多核CPU就是指 同一时刻计算机可以执行多件事情 。即电脑在同一时刻可执行多种程序。 1.2 并行与并发 我相信读到这儿读者肯定是有疑问的, 为什么在配置单核CPU的计算机上既可以听音乐,同时又可以打开QQ聊天,同时还可以挂着游戏呢? 这一切的原因都是因为CPU运行的速度实在是太快了,一秒钟可以执行上百万次。在单核CPU的计算机上,我们先把音乐播放的软件拿来执行,让它执行0.0001s,然后再把QQ的程序拿来执行0.0001s,最后再把游戏的程序拿来执行0.0001s,循环往复。虽然我们执行的时间只有0.0001s,但是在CPU眼里,这个时间已经足够长了,所以达到了我们视觉上的效果,好像音乐、QQ、游戏同时在运行的样子。类似于现实生活中的翻书动画一般

socket 网络编程

放肆的年华 提交于 2020-01-19 19:13:10
通过使用套接字来达到进程间通信目的的编程就是网络编程 编程语言 包括 静态代码 html,javascript,css等 包括 动态代码 用于数据库操作 有 php,jsp,asp 包括 服务器架设也是结合你学的动态语言的 mybatis 动态sql语法 网络模型 基础建设 OSI参考模型:七层 Internet网络模型:四层 网络协议 Internet的网络层协议 ip dns Internet的传输层协议 tcp udp 套接字(Sockets) java Sockets tcp Sockets udp Sockets 数据包 在C++编程中,往往定义一种新的数据类型用来存储数据包的结构 数据包传送,指数据包的电气物理传输 解包,指接收端对接收的数据进行解析,获得有用信息和数据 来源: CSDN 作者: 金银忍冬 链接: https://blog.csdn.net/qq_32265719/article/details/104042697

26.python网络编程

不打扰是莪最后的温柔 提交于 2020-01-19 00:04:50
一.楔子 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运行,你就会发现,这两个python的文件分别运行的很好。 但是如果这两个程序之间想要传递一个数据,你要怎么做呢? 这个问题以你现在的知识就可以解决了,我们可以创建一个文件,把a.py想要传递的内容写到文件中,然后b.py从这个文件中读取内容就可以了。 但是当你的a.py和b.py分别在不同电脑上的时候,你要怎么办呢? 类似的机制有计算机网盘,qq等等。我们可以在我们的电脑上和别人聊天,可以在自己的电脑上向网盘中上传、下载内容。这些都是两个程序在通信。 二.软件开发的架构 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发的架构 1.C/S架构 C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 2.B/S架构 B/S即:Browser与Server,中文意思

JAVA光头之路(十)--网络编程

北城以北 提交于 2020-01-18 23:02:27
网络编程的概念 计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统。网络编程就就是编写程序使联网的两个(或多个)设备(例如计算机)之间进行数据传输。Java语言对网络编程提供了良好的支持,通过其提供的接口我们可以很方便地进行网络编程。 网络分层 通过网络发送数据是一项复杂的操作,必须仔细地协调网络的物理特性以及所发送数据的路基特征。为了对应用程序开发人员和最终用户隐藏这种复杂性,网络通信的不同方面被分解为多个层。每一层表示为物理硬件(即线缆和电流)与所传输信息之间的不同抽象层次。 应用层 应用层确定了数据传输后的操作,是直接为应用进程提供服务的,其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。 传输层 传输层起着承上启下的作用,涉及源端节点到目的端节点之间可靠的信息传输。传输层需要解决跨越网络连接的建立和释放,对底层不可靠的网络,建立连接时需要三次握手,释放连接时需要四次挥手。 网际层 网际层涉及源主机节点到目的主机节点之间可靠的网络传输,它需要完成的功能主要包括路由选择、网络寻址、流量控制、拥塞控制、网络互连等。 主机网络层 主机网络层定义了一个特定的网络接口(如以太网或WiFi天线)如何通过物理连接向本地网络或世界其他地方发送IP数据报。主机网络层中,由连接不同计算机的硬件(线缆

Java--网络编程(5)UDP编程

时光毁灭记忆、已成空白 提交于 2020-01-18 00:47:15
其实UDP和TCP的代码的差别不大,个人觉得也就是将其数据包装好去发送; 还有就是,用TCP时,先启动客户端会握手失败。而UDP中,不会出现异常,但数据并不会被接收端收到。 发送端: //发送端 @Test public void sender ( ) { DatagramSocket socket = null ; try { socket = new DatagramSocket ( ) ; String str = "我是UDP" ; InetAddress inet = InetAddress . getByName ( "127.0.0.1" ) ; byte [ ] bytes = str . getBytes ( ) ; DatagramPacket packet = new DatagramPacket ( bytes , 0 , bytes . length , inet , 5678 ) ; socket . send ( packet ) ; } catch ( IOException e ) { e . printStackTrace ( ) ; } finally { if ( socket != null ) { socket . close ( ) ; } } } 接收端: //接收端 @Test public void receive ( ) {

Java网络编程之URL网络编程

爱⌒轻易说出口 提交于 2020-01-17 23:39:50
一、URL类概述 1、URL(Uniform Resource Locator):统-资源定位符,它表示Internet上某一资源的地址。 2、它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。 3、通过URL我们可以访问Internet上的各种网络资源,比如最常见的www,ftp站点。 浏览器通过解析给定的URL可以在网络上查找相应的文件或其他资源。 4、URL的基本结构由5部分组成: 二、URL类构造器 1、为了表示URL, java.net 中实现了类URL。我们可以通过下面的构造器来初始化一个URL对象。 2、URL类的构造器都声明抛出非运行时异常,必须要对这一异常进行处理,通常是用try-catch语句进行捕获。 3、当URL对象生成后,其属性是不能被改变的,但可以通过它给定的方法来获取这些属性。 来源: https://www.cnblogs.com/ZengBlogs/p/12207411.html

第十六章 网络编程

大憨熊 提交于 2020-01-17 22:13:29
1.Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。 java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不用关注通信细节。 java.net 包中提供了两种常见的网络协议的支持: 1.TCP:TCP 是传输控制协议的缩写,它保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。 2.UDP:UDP 是用户数据报协议的缩写,一个无连接的协议。提供了应用程序之间要发送的数据的数据包。 2.socket编程 套接字使用TCP提供了两台计算机之间的通信机制。 客户端程序创建一个套接字,并尝试连接服务器的套接字。 当连接建立时,服务器会创建一个 Socket 对象。客户端和服务器现在可以通过对 Socket 对象的写入和读取来进行通信。 java.net.Socket 类代表一个套接字,并且 java.net.ServerSocket 类为服务器程序提供了一种来监听客户端,并与他们建立连接的机制。 3.TCP socket 3.1客户端代码 // 文件名 GreetingClient.java import java . net . * ; import java . io . * ; public class