1.cmd网络管理相关命令
1.网络环境操作:
1.ipconfig: 可以查看与配置网络状态 用于显示当前的TCP/IP配置的设置值.
2.netstat: 查看所有启动连接的端口号
3.(1)ifdown 网卡设备名:禁用该网卡设备。
(2)ifup 网卡设备名:启用该网卡设备
4.route命令
(1)route -n:查看路由列表(可以看到当前计算机的网关)。
(2)route add default gw 192.168.1.1:临时设定网关。
(3)route del default gw 192.168.1.1:删除设定的网关
5.nslookup [主机名或IP]:进行域名或IP地址的解析
2.网络测试操作:
1.ping命令
ping ip或域名:探测指定IP或域名的网络状况。
2.telnet 域名或IP 端口
远程管理与端口探测命令。(telnet的远程连接是极不安全的,它是明文传递数据,并未将数据加密。并不建议使用telnet命令进行远程管理,但是我们可以通过该命令探测某个计算机中是否开放了某一端口。如:telnet 192.168.0.1 80)
3.traceroute命令
traceroute IP或域名:路由跟踪,查看访问某一IP或域名时经过的路由(路由路径)
4.wget命令
wget 下载地址:下载命令。
5.tcpdump命令
tcpdump命令:用于监听某一网卡下某一服务的数据包接收情况(截获数据包-抓包)。如:tcpdump -i eth0 -nnX port 21。
选项:
-i 指定监听的网卡
-nn 将数据包中的域名与服务转为IP和端口显示
-X 以十六进制和ASCII码显示数据包内容
port 指定监听的端口
2.服务端客户端连接基本流程
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class MessageServer {
//创建服务端
public static void main(String[] args) throws IOException {
//1.建立服务端和客户端连接对象
ServerSocket serverSocket = new ServerSocket(6666);
System.out.println("等待连接");
//2.创建服务端中的客户端对象,直到有客户端连接上才启动
Socket client = serverSocket.accept();
System.out.println("连接成功");
//3.创建服务端中的客户端对象的输入输出流
OutputStream outputStream = client.getOutputStream(); //向客户端传出数据
outputStream.write("helloworld".getBytes()); //显示helloworld的所有字节
outputStream.flush(); //输出所有数据刷新缓冲,管道强制退出
InputStream inputStream = client.getInputStream(); //从客户端中读入数据
}
}
package zq0922;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class MessageClient {
//创建客服端
public static void main(String[] args) throws IOException {
Socket client = new Socket("127.0.0.1",6666); //创建客户端对象,传入本地网络地址和端口号
System.out.println("连接成功");
//创建客户端输入输出流对象
InputStream inputStream = client.getInputStream(); //向客户端输入数据
OutputStream outputStream = client.getOutputStream(); //客户端向服务端输出数据
//根据传入的字符数构造固定长度的字节数组
int msglength = inputStream.read(); //客户端从服务端获取的第一个字节为剩余字节的长度,下次读取数据从下个开始
System.out.println("消息的长度为:"+msglength);
byte[] msgbytes = new byte[20];
inputStream.read(msgbytes); //传入msgbytes的引用地址,函数类msgbytes改变了,参数中msgbytes也改变
// for(int i = 0; i < msgbytes.length; i++){
// msgbytes = inputStream.read(); //inputStream.read()读入的是int类型
// }
System.out.println("服务器传回的命令"+new String(msgbytes)); //字节数组可创建字符串对象
//获取向客户端输入的内容
}
}
3.网络协议
TGP:面向连接,要求发送数据前必须确认双方都可以收+发信息
连接过程:三次握手
S C
1.客户端发送请求,服务端监听
2.服务端收到请求并应答,客户端收到应答消息,再发送应答包给服务端
3.服务端收到应答
UDP:不需要建立连接