网络编程(TCP/IP)
网络编程中有两个主要的问题
- 如何准确的定位到网络上的一台或多台主机
- 找到主机后如何进行通信
两个要素
通信双方地址:
- ip
- 端口号
规则:网络通信的协议
http, ftp, TCP, UDP……
IP地址
ip地址:InetAddress
- 唯一标识
- 127.0.0.1, localhost
- ip地址分类
- ipv4/ipv6
- ipv4,4个字节(32位)
- ipv6,128位,8个无符号整数
- 公网(互联网),私网(局域网)
- ABCD类地址(1127,128191,192223,224239)
- 192.168.xxx.xxx专门给组织内部使用
- ipv4/ipv6
- 域名:记忆ip
端口Port
端口表示计算机上的一个程序的进程;
- 不同的进程有不同的端口号!用来区分软件!
- 被规定0~65535
- TCP,UDP:65535*2,单个协议下,端口号不能冲突
- 端口分类:
- 公有端口:0~1023
- http:80
- https:443
- ftp:21
- 程序注册端口:1024~49151,分配用户或程序
- Tomcat:8080
- MySQL:3306
- Oracal:1521
- 动态、私有:49152~65535
- 公有端口:0~1023
通信协议
TCP UDP对比
TCP:打电话
- 连接,稳定
- 三次握手,四次挥手
最少需要三次,保证稳定连接。
A:在?
B:在。
A:上号!
A:我要走了
B:你真的要走了吗
B:你真的真的要走了吗
A:我真的要走了
- 客户端、服务端
- 传输完成、释放连接,效率低
UDP:发短信
- 不连接,不稳定
- 客户端、服务端(没有明确的界限)
- 不管有没有准备好,都可以发给你
- 导弹、DDOS
TCP实现聊天
客户端:
- 连接服务器Socket
- 发送消息
服务端:
- 建立服务的端口ServerSocket
- 等待用户的连接 accept
- 接收用户的消息
URL
统一资源定位符:定位互联网上的某一个资源
DNS域名解析
协议://ip地址:端口/项目名/资源
标签:UDP,ip,编程,端口,网络,TCP,连接
From: https://www.cnblogs.com/yfy--/p/17131035.html