十一 Socket编程
一、 计算机网络:
将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来
在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
二、 网络编程:
就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。
三、 网络编程3要素:IP、端口号、协议
网络编程3要素之IP:
- 每个设备在网络中的唯一标识,每台网络终端在网络中都有一个独立的地址,我们在网络中传输数据就是使用这个地址。
- ipconfig:查看本机ip
- ping:测试两端之间是否能通信
- 本地回路地址:127.0.0.1,自己给自己发数据
- 广播地址:255.255.255.255是广播地址
- ipv4:4个字节组成,4个0~255的
- ipv6:8组,每组4个16进制数
网络编程3要素之端口号:
- 每个程序在设备上的唯一标识
- 每个网络程序都需要绑定一个端口号,传输数据的时候除了确定发到哪台机器上 ,还要明确发到哪个程序
- 端口号范围:0~65535
- 编写网络应用就需要绑定一个端口号,尽量使用1024以上的,1024以下的基本上都被系统程序占用了。
常用端口号:
- mysql:3306
- oracle:1521
- web:80
- tomcat:8080
- qq:4000
网络编程3要素之协议: 为计算机中进行数据交换而建立的规则、标准或约定的集合
UDP:
面向无连接。数据不安全,速度快,不区分客户端和服务端,例如QQ聊天,发短信。
TCP:
面向连接(三次握手),数据安全,速度略低,分为客户端和服务端。
三次握手:客户端向服务端发起请求,服务端响应请求,传输数据
第一次向服务器发送请求,第二次是响应,第三次是传输数据
四、Socket通信原理图解
Socket套接字概述:
网络上具有唯一标识的ip地址和端口号组合在一起才能构成唯一能识别的标识符套接字。
通信的两端都有Socket
网路通信其实就是Socket间的通信。
数据在两个Socket之间通过IO流传输
Socket在应用程序中创建,用过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和Port
五、UDP传输
发送Send
创建DataGramSocket:端口号
创建DatagramPacket:指定数据,长度,地址,端口
使用DatagramSocket发送DatagramPacket
关闭DatagramSocket

接收Receive
* 创建DatagramSocket
* 创建DatagramPacket,指定数组,长度
* 使用DatagramSocket接收DatagramPacket
* 关闭DatagramSocket
* 从DatagramPacket中获取数据

六、UDP传输多线程
定义两个类Send和Receive继承Thread
发送和接收在同一个窗口完成
七、Tcp编程
1.客户端:
创建Socket连接服务器(指定ip,端口号),通过IP找到相应的服务器
调用Socket的getInputStream()和getOutputStream()方法获得服务端相连的IO流
输入流可以读取服务端输出流写出的数据,输出流可以写出数据到服务端的输入流
2.服务端
创建ServerSocket(指定端口号)
调用ServerSocket的accept()方法接收一个客户端请求,得到一个Socket
调用Socket的getInputStream()和getOutputStream()方法获得和客户端相应的IO流
3.使用BufferedReader和PrintStream


十一 Socket编程的更多相关文章
- linux网络编程之socket编程(十一)
今天继续学习socket编程,这次主要是学习超时方法的封装,内容如下: ①.alarm[不常用,了解既可] 它的实现思路是这样的: 但是这种方案有一定的问题,因为闹钟可能会作为其它的用途,这时所设置的 ...
- python网络编程-socket编程
一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层 ...
- 十三python基础之socket编程
阅读目录 一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 粘包现 ...
- python学习------socket编程
一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频 ...
- python基础之socket编程
一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 粘包现象 十 什么是 ...
- python基础之socket编程 (转自林海峰老师)
python基础之socket编程 阅读目录 一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 ...
- Py修行路 python基础 (二十四)socket编程
socket编程 一.客户端/服务端架构 客户端/服务端架构 即C/S架构,包括:1.硬件C/S架构,2.软件C/S架构. 互联网中处处都是C/S架构,学习socket 就是为了完成C/S架构的开发. ...
- linux网络编程之socket编程(十)
今天继续socket编程的学习,最近晚上睡觉都没有发热,没有暖气的日子还是种煎熬,快乐的十一也已经走来,幸福有暖气的日子也快啦,好了,回到正题~ ①close终止了数据传送的两个方向. ②shutdo ...
- Python学习之路15☞socket编程
一 客户端/服务器架构 即C/S架构,包括 1.硬件C/S架构(打印机) 2.软件C/S架构(web服务) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二 os ...
随机推荐
- jQuery结合CSS实现手风琴组件(2)----利用seajs实现静态资源模块化引入
1. 目录结构(webStrom) 2. 代码 1.html <!DOCTYPE html> <html lang="en"> <head> & ...
- 安装go和goland
1.建议去go语言中文网下载,网址:https://studygolang.com/dl ,下图是下载页面及包介绍 2.Windows版安装 3.在cmd命令行窗口输入“go version”可以查看 ...
- 【layui】提交表单
1 <script type="text/javascript"> layui.use(['form', 'layer', 'jquery'], function () ...
- java web 学生信息录入
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- vue.js ③
1.组件使用的细节点 H5编码中的规范是tr必须在tbody里所以不能直接套用<row></row>的写法,<ul>标签下支持<li>,select标签 ...
- requests 用法小速记
Request库安装方法 Request官网 使用管理员权限启动 command控制台(win+X 命令提示符(管理员)) 使用pip安装requests库(默认配置好python以及pip的环境变量 ...
- laravel 排除csrf验证
中(*排除所有路由)
- NSObject类的API介绍
这篇文章围绕的对象就是NSObject.h文件,对声明文件中的属性.方法进行必要的“翻译”. 该文件大致由两部分组成:NSObject协议和NSObject类. (一)NSObject协议 - (BO ...
- python 基础之集合
集合 s=set('chen xi') s1=['cx','ee','cx'] s2=set(s1)#set为集合 print(s2,type(s2)) s=list(s2) print(s,type ...
- elk单机安装部署
es 下载地址:wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0-linux-x86_64.t ...