网络编程:
网络编程中有两个主要的问题:
1.如何准确地定位到网络上一台或者多台主机
2.找到主机之后如何进行通信
网络编程中的要素:
1.IP和端口号
2.网络通信协议
IP:
IP地址是唯一定位一台网络计算机的
端口:
端口:表示计算机上的一个程序的进程
不同的进程有不同的端口号,用来区分软件
被规定电脑上最多能跑65535个程序
TCP,UCP:每一个都有65535个程序所以就是*2 TCP用80号端口,同样UCP也可以使用80两者不冲突
端口的分类:
公有端口0~1023 尽量不去使用
HTTP:80
程序注册端口:2014~49151分配给用户或者程序
动态、私有:49152~65535
cmd查看所有端口:netstat -ano
通信协议:
协议:约定
网络通信协议:速率,传输码率,代码结构,传输控制...
重要:TCP:用户传输协议,UDP:用户数据报协议
出名的协议:TCP:用户传输协议,IP网路互联协议
TCP UDP对比
TCP:打电话
连接,稳定,
三次握手:建立连接最少需要三次 A发出一次B回应一次A再回应B才能保证稳定建立连接
四次挥手:建立断开最少需要四次 A我要断开B我知道了B你真的断开了吗A断开了
客户端和服务端
传输完成,释放连接,效率低
UDP:发短信
不连接,不稳定
客户端和服务端,没有明确的界限
不管有没有准备好都可以发给你
DDOS:洪水攻击
代码TCP:像打电话需要连接
客户端:1.连接服务器Socket
2.发送消息
服务器:1.建立服务端口ServerSocket
2.等待连接accept
2.接受用户的消息