Java教程

网络编程

本文主要是介绍网络编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!


1网络基础
1.1地址
mac地址
ip地址,4个点分十进制表示
子网掩码,将挡住的ip位数作为网段,未挡住的部分作为可变
网关,路由器中连接交换机的口

DHCP,自动为局域网电脑分配ip
路由器
交换机
广播/单播
arp协议
局域网/广域网
DNS

1.2端口,将同一个电脑上的不同程序进行隔离(ip找电脑,端口找电脑上的程序)
mysql在硬盘上进行文件操作 3306
redis 在内存上进行数据操作 6379

2osi7层模型
应用层,使用软件
表示,看到数据,如图片、视频
会话,保持登录或链接状态
传输,tcp/udp
网络,ip寻址
数据链路,mac
物理,将数据转换成电信号

3tcp三次握手/四次挥手
socket客户端向服务端发起连接请求:3次握手
客户端跟服务端断开连接:4次挥手

4BS和CS架构
a软件:
客户端:CS架构--->client ----server
浏览器:BS架构--->browser--server

b如何实现相互通信
c基于socket模块实现网络通信

为什么网络通信发送的都是字节?而不是字符串?
py3,send/recv 都是字节
py2,send/recv 都是字符串

5socket模块
服务端:收发数据 >accept/recv
客户端:收发数据 >connect/recv

服务端:
监听ip和端口
等待客户端连接(阻塞)
收(阻塞)

accept,阻塞,等待客户端来连接
recv 阻塞,等待客户端发来数据

import socket
sock=socket.socket()
sock.bind(('127.0.0.1',8899)
sock.listen(5)

conn,addr=sock.accept()
data=conn.recv(1024)

客户端:
连接服务端ip和端口(阻塞)
收(阻塞)

connect 阻塞,一直在连接,直到连接成功才往下运行其他代码
recv 阻塞,等待服务端发来数据


6黏包

7socketserver模块
多线程/多进程 + socket
面向对象多继承


程序结构
bin
config
core
db
log
readme

这篇关于网络编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!