一、  计算机网络:

将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来
在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统

二、   网络编程:

就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。

三、  网络编程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编程的更多相关文章

  1. linux网络编程之socket编程(十一)

    今天继续学习socket编程,这次主要是学习超时方法的封装,内容如下: ①.alarm[不常用,了解既可] 它的实现思路是这样的: 但是这种方案有一定的问题,因为闹钟可能会作为其它的用途,这时所设置的 ...

  2. python网络编程-socket编程

     一.服务端和客户端 BS架构 (腾讯通软件:server+client) CS架构 (web网站) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二.OSI七层 ...

  3. 十三python基础之socket编程

      阅读目录 一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 粘包现 ...

  4. python学习------socket编程

    一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频 ...

  5. python基础之socket编程

    一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 粘包现象 十 什么是 ...

  6. python基础之socket编程 (转自林海峰老师)

    python基础之socket编程   阅读目录 一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 ...

  7. Py修行路 python基础 (二十四)socket编程

    socket编程 一.客户端/服务端架构 客户端/服务端架构 即C/S架构,包括:1.硬件C/S架构,2.软件C/S架构. 互联网中处处都是C/S架构,学习socket 就是为了完成C/S架构的开发. ...

  8. linux网络编程之socket编程(十)

    今天继续socket编程的学习,最近晚上睡觉都没有发热,没有暖气的日子还是种煎熬,快乐的十一也已经走来,幸福有暖气的日子也快啦,好了,回到正题~ ①close终止了数据传送的两个方向. ②shutdo ...

  9. Python学习之路15☞socket编程

    一 客户端/服务器架构 即C/S架构,包括 1.硬件C/S架构(打印机) 2.软件C/S架构(web服务) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二 os ...

随机推荐

  1. pandas读取文件的read_csv()方法

    import pandas as pd pd.read_csv(filepath_or_buffer,header,parse_dates,index_col) 返回数据类型:DataFrame:二维 ...

  2. Codeforces Round #616 (Div. 2) D

    莫队的模板 struct node{ int l,r,id; }q[maxn]; int cmp(node a,node b) { ) ? a.r < b.r : a.r > b.r); ...

  3. JavaScript相关

    用文本编辑软件和浏览器就能开发和调试JavaScript代码 Node.js  在浏览器之外(服务器端)独立运行Ja¬vaScript代码的Node.js于2009年问世,一个独立的JavaScrip ...

  4. 什么是SOA架构

    什么是SOA架构 SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式.从服务.基于服务开发和服务的结果来看,面向服务是一种思考方式.其实SO ...

  5. 一键绑定-提供一键动态绑定键盘输入的效果[C#制作](2020年寒假小目标07)

    日期:2020.01.31 博客期:139 星期五 [需求部分] 嗯,其实我是找了一下网站,要实现按下一个键盘键可以按照顺序输出想要的多个键盘键,差不多就是这样的功能.为什么我会有想实现这样功能的想法 ...

  6. 不高兴的津津(0)<P2004_1>

    不高兴的津津(unhappy.pas/c/cpp) [问题描述]  津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵. ...

  7. unity优化-内存(网上整理)

    内存优化内存的开销无外乎以下三大部分:1.资源内存占用:2.引擎模块自身内存占用:3.托管堆内存占用.在一个较为复杂的大中型项目中,资源的内存占用往往占据了总体内存的70%以上.因此,资源使用是否恰当 ...

  8. 第二周之Hadoop学习(二)

    这篇博客根据http://dblab.xmu.edu.cn/blog/install-hadoop-in-centos/中的教程进行学习: 首先按照教程的操作的第一步的时候,电脑直接蓝屏了. 但是依然 ...

  9. [转]利用 Commons-Fileupload 实现文件上传

    转载 Java Web开发人员可以使用Apache文件上传组件来接收浏览器上传的文件,该组件由多个类共同组成,但是,对于使用该组件来编写文件上传功能的Java Web开发人员来说,只需要了解和使用其中 ...

  10. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:将所有列表项放置同一行

    <!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...