网络编程
1.1 、概述
javaweb: 网络编程 B/S
网络编程 :TCP/IP C/S
1.2、 网络通信的两个要素
如何实现网络的通信?
- IP和端口号
- 网络通信协议
1.3、IP
ip地址:InetAdress
-
唯一定位一台网络上的积算仪
-
127.0.0.1:本机localhost
-
ip地址的分类
- IPV4 /IPV6
- 127.0.0.1,4个字节组成
- IPV6 :128位。8个无符号整数
- 公网(互联网)-私网(局域网)
- 192.168.xx.xx专门给组织内部使用的
- IPV4 /IPV6
-
域名:记忆ip问题!
1.4、端口
端口表示计算机上的一个程序的进程
-
不同进程有不同的端口号
-
被规定0~65535
-
TCP,UDP:65535*2
-
端口分类
-
公有端口 0~1023
- HTTP:80
- TTTPS:443
- FTP:21
- Telent:23
-
程序注册端口:1024-49151,分配用户或者程序
- Tomat:8080
- MySql:3306
- Oracle:1521
-
动态、私有端口:49152~65535
#常用的端口命令 netstart -ano#查看所有端口 netstart -ano|findstr "5900"#查看指定端口
-
1.5、通信协议
协议:约定,就好比我们现在说的普通话
网络通信协议:速率、传输码率、代码结构、传输控制
TCP/IP协议簇:
重要的协议:
- TCP:用户传输协议
- UDP:用户数据报协议
出名的协议:
- TCP:
- IP:网络互连协议
TCP UDP对比
TCP:打电话
- 连接,稳定
- 三次握手 四次挥手
- 客户端、服务端
- 传输完成,释放连接,效率低
UDP:发短信
- 不连接,不稳定
- 客户端、服务端、没有明确界限
- 不管有没有准备好 都可以发送
1.6、TCP实现连天
自定义客户端
1.连接服务器 Socket
2.发送消息
3.关闭流
package cn.morant.net;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
//客户端
public class TcpClientDemo1 {
public static void main(String[] args) {
Socket socket = null;
OutputStream os = null;
try{
//1.要知道服务器的地址,端口号
InetAddress serverIP = InetAddress.getByName("127.0.0.1");
int port =9999;
//2.创建一个socket连接
socket = new Socket(serverIP,port);
//3.发送消息IO流
os = socket.getOutputStream();
os.write("你好,欢迎来到聊天工作室".getBytes());
}catch(Exception e){
e.printStackTrace();
}finally {
if (os !=