@JAVA网络通信

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:不需要建立连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值