当前位置:网站首页 > C++编程 > 正文

tcp协议工具(tcp.协议)



一、解决粘包问题
        1.1、tcp的特点
        面向字节流特点,会造成可能数据与数据发送到一块,成为粘包,数据之间不区分

1.3、解决粘包问题

tcp 流式套接字   数据与数据之间没有边界   导致可能多次的数据粘到一起

解决:1、规定一些数据与数据之间的 间隔符   如”aa" "

        2、可以指定要发送的数据的长度

        2、加延时,让先把东西发过去,间隔一下,相当于就是跑出去了,被拉了一下,两人错开了

         signal(SIGCHLD,handler);
            char buf1[1024] = "3.c";
            write(fd,buf1,strlen(buf1)+1);
            //sleep(1);
            int file = open(buf1,O_RDONLY);
            write(fd," ",2);
        解决办法





        在网络里面有专门的读写操作

        fgets()后面的参数需要一个流指针,后面是一个流指针,遇到 结束,并且将 读到

        这样我们就可以将文件描述符,转换成字符流指针,通过fgets来获取这些信息,再设置一个标志符,来进行区分所发送的信息。

send()发数据           ssize_t send(int sockfd, const void *buf, size_t len, int flags);

recv()                ssize_t recv(int sockfd, void *buf, size_t len, int flags);

flag是指可以指定在网络中接收的方式                前面三个参数和read参数一致

 二、常用网络测试工具
        ifconfig //查看主机上,网卡网络信息
        ping                //测试 两台主机之间是否连通
        telnet                //远程登录工具
        ssh                    //硬件(开发板)
        netstat                //查看当前主机上,活动的网络进程的相关的状态信息
        arp                        //(ipc找mac)





        2.1、# ubuntu开启telnet服务  
        sudo apt-get install openbsd-inetd
        sudo apt-get install telnetd
        sudo /etc/init.d/openbsd-inetd restart
        注意:
        安装之前,确保ubuntu能上网
        ping www.baidu.com
        # 查看 telnet服务是否开启
        sudo netstat -a | grep telnet







        开启telnet结果图

         2.2、ssh安装
        /ssh登录 ubuntu 需要安装以下的服务
        sudo apt-get install openssh-server openssh-client
        2.3、 抓包安装
        sudo apt install wireshark
        sudo wireshark(启动)




        2.4、wireshark过滤使用
        过滤规则:1、根据ip地址过滤
                ip.srC = x.X.X.X
                ip.dst =- x.x.x.x
                根据端口过滤:tcp.srcportXX;二
                tcp.dstportXX;二三
                udp.srcportZ-XX;
                udp.dstportXX:
        根据协议类型过滤:
                tcp udp icmptelnet
        任意组合以上条件抓包:
                如果与的关系:and
                ip.src == 192.168.1.100 and tcp.dstport == 9999
        如果或关系:Or
                ip.src == 192.168.1.100 or ip.dst == 192.168.1.102
                tcp host 192.168.1.100
2.5、netstat 测试查看网络端口使用情况
                //正在活动的 常看tcp的//用的最多的
        netstat -anp
        -a //a] ]
        直接显示 ip port 的数字形式-n ll
        -p //显示 进程的 程序名 和 pid
        netstat-n                =-->列出当前所有网络端口使用情况
        -tnetstat-n              =-->列出所有TCP通信的端口信息
        netstat-n-U             =-->列出所有UDP通信的端口信息
        netstat -n -i             =-->列出默认网络接口(网卡)上的通信信息
        netstat -lnp | grep 8888             i===>查看指定端口上的通信详情

























到此这篇tcp协议工具(tcp.协议)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • msvcp140.dll丢失的解决方法 win11(msvcp140.dll丢失的解决方法是什么)2026-03-13 13:00:12
  • codepen官网(codepen官网进入)2026-03-13 13:00:12
  • CPU参数对比(CPU参数对比(INTEL))2026-03-13 13:00:12
  • msvcp140.dll什么意思(msvcp140.dll解决方法)2026-03-13 13:00:12
  • cnn 网站(cnn网站在中国能看吗)2026-03-13 13:00:12
  • cmake多目录编译(cmake 多目录)2026-03-13 13:00:12
  • vs2010怎么创建c++项目(vs2019创建c++项目步骤)2026-03-13 13:00:12
  • gitclone到指定目录(git clone到指定文件夹)2026-03-13 13:00:12
  • autokey生长动画怎么渲染(sketchup做生长动画插件)2026-03-13 13:00:12
  • c++ 条件变量和读写锁(c++11条件变量 使用)2026-03-13 13:00:12
  • 全屏图片