手撕Udp套接字|实现群聊通信|实现Windows & Linux通信交互

这篇具有很好参考价值的文章主要介绍了手撕Udp套接字|实现群聊通信|实现Windows & Linux通信交互。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

手撕Udp套接字|实现群聊通信|实现Windows & Linux通信交互


专栏和Git地址

操作系统https://blog.csdn.net/yu_cblog/category_12165502.html?spm=1001.2014.3001.5482UdpSockethttps://github.com/Yufccode/BitCode/tree/main/Linux/%E4%BB%A3%E7%A0%81/0215Udp%E5%A5%97%E6%8E%A5%E5%AD%97


README

本项目通过Linux套接字编程,实现Udp通信

本项目只实现通信的核心框架代码。

可以实现的交互功能有:

  • Linux主机上本机不同进程的本地环回信息交互,效果如图1所示。

  • Linux主机上实现不同进程之间“群聊”效果,效果如图2所示

  • 不同Linux主机上的Udp通信。

  • Windows客户端与Linux服务端进行信息交互,通过对核心的代码改进,还可以实现不同Window客户端之间通过Linux服务端进行信息交互,效果如图4所示。

Linux主机本地环回

首先在客户端向服务端传送message,服务端把message原封不动地发回给客户端。如果读者希望服务端对message进行进一步变换,可以直接对代码逻辑进行改进。

手撕Udp套接字|实现群聊通信|实现Windows & Linux通信交互

 图1

运行方法:

make clean; make 生成可执行

./udp_server 8080 服务端开机,设置端口号为8080

./udp_client 127.0.0.1 8080 客户端开机,127.0.0.1代表本地环回,设置端口号为8080。

Linux主机实现不同进程的“群聊”效果

手撕Udp套接字|实现群聊通信|实现Windows & Linux通信交互

图2

运行方法:

make clean; make 生成可执行

服务端SSH:

./udp_server 8080 服务端开机,设置端口号

客户端A输入SSH:

mkfifo clientA 生成管道文件,用于信息的收取

./udp_client 127.0.0.1 8080 > clientA 客户端A开机,并把收到的信息重定向到管道文件上

客户端A输出SSH:

cat < clientA 从管道文件中读取客户端A收到的结果

客户端B输入SSH:

mkfifo clientB 生成管道文件,用于信息的收取

./udp_client 127.0.0.1 8080 > clientB 客户端A开机,并把收到的信息重定向到管道文件上

客户端B输出SSH:

cat < clientB 从管道文件中读取客户端A收到的结果

不同Linux主机上的Udp通信

运行方法:

首先,如果要进行非本地测试,我们必须先开放自己主机的指定网络端口。

我自己使用的是云服务器,这里展示我自己开放主机指定网络端口的方法,如图3所示

与本地环回测试类似,只需要服务端Linux主机 make 生成服务端和客户端后,将客户端发送给另一台主机,另一台主机就可以通过运行客户端完成通信(前提是服务端已经开始运行)。

手撕Udp套接字|实现群聊通信|实现Windows & Linux通信交互

图3

Windows客户端与Linux服务端进行信息交互

手撕Udp套接字|实现群聊通信|实现Windows & Linux通信交互

 图4

运行方式:

编译运行windows服务端的udp代码,连接Linux服务端即可,使用方法和Linux服务端的一样。文章来源地址https://www.toymoban.com/news/detail-426682.html

到了这里,关于手撕Udp套接字|实现群聊通信|实现Windows & Linux通信交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java】网络编程与Socket套接字、UDP编程和TCP编程实现客户端和服务端通信

    为什么需要网络编程? 现在网络普及程序越来越高,网络上保存着我们日常生活中需要的各种资源,使用程序通过网络来获取这些资源的过程就需要网络编程来实现。 什么是网络编程? 网络编程,指网络上的主机,通过不同的进程以程序的方式实现网络通信(网络数据传输)

    2024年02月17日
    浏览(51)
  • 【网络】socket——预备知识 | 套接字 | UDP网络通信

    🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言: 你只管努力,剩下的交给时间! 在前面本喵对网络的整体轮廓做了一个大概的介绍,比如分层,协议等等内容,现在我们直接进入socket(套接字)编程,先来感受到网络编程。 我们知道,在网络通信中,存在两套地址,一

    2024年02月13日
    浏览(42)
  • python3套接字编程之socket和socketserver(TCP和UDP通信)

    socket和socketserver是python3中socket通信模块,关于其使用做如下总结。 目录 1.socket 1.1模块引入 1.2套接字获取 1.3套接字接口 1.3.1 服务端 1.3.2 客户端套接字函数 1.3.3 公共套接字函数 1.3.4 面向锁的套接字方法 1.3.5 面向文件的套接字的函数 2.socketserver 3.TCP 3.1 socket类型TCP 3.2 sockets

    2024年02月15日
    浏览(63)
  • 网络编程套接字(二)之UDP服务器简单实现

    目录 一、服务端UdpServer 1、udp_server.hpp 1、服务器的初始化 2、服务器的运行 2、udp_server.cc 二、客户端UdpClient udp_client.cc 三、完整代码 首先,我们在该文件中,将服务器封装成一个类,而作为一款服务器,必须要有自己的端口号,同时网络服务器需要有对应的IP地址,文件描述

    2024年04月16日
    浏览(46)
  • UDP Ping程序实现--第1关:Ping服务端创建UDP套接字

    创作不易,请留个赞吧!!! 任务描述 本关任务:在 Ping 的服务程序中创建一个使用 UDP 协议的套接字。 相关知识 为了完成本关任务,你需要掌握: 数据包套接字类型; 为套接字绑定 IP 地址及端口。 数据包套接字 套接字有三种类型:流式套接字( SOCK_STREAM ),数据包套接字

    2024年02月22日
    浏览(24)
  • 网络编程套接字 | UDP套接字

    前面的文章中我们叙述了网络编程套接字的一些预备知识点,从本文开始我们就将开始UDP套接字的编写。本文中的服务端与客户端都是在阿里云的云服务器进行编写与测试的。 在v1的版本中我们先来使用一下前面讲过得一些接口,简单的构建一个udp服务器: 然后运行上述的程

    2024年02月09日
    浏览(40)
  • C++网络编程 TCP套接字基础知识,利用TCP套接字实现客户端-服务端通信

    流式套接字编程针对TCP协议通信,即是面向对象的通信,分为服务端和客户端两部分。 1)加载套接字库( 使用函数WSAStartup() ),创建套接字( 使用socket() ) 2)绑定套接字到一个IP地址和一个端口上( 使用函数bind() ) 3)将套接字设置为监听模式等待连接请求( 使用函数

    2024年02月03日
    浏览(37)
  • Linux下套接字TCP实现网络通信

    ​ 套接字(Socket) 是计算机网络中实现网络通信的一种 编程接口 。它提供了应用程序与网络通信之间的一座桥梁,因为它允许应用程序通过网络发送和接收相应的数据以实现不同主机之间的通信。 通常套接字由以下两部分组成: 1.网络IP和端口号 :IP用来标识主机,而端口号

    2024年02月10日
    浏览(33)
  • 【Linux网络】网络编程套接字 -- 基于socket实现一个简单UDP网络程序

    我们把数据从A主机发送到B主机,是目的吗?不是,真正通信的不是这两个机器!其实是这两台机器上面的软件(人) 数据有 IP(公网) 标识一台唯一的主机 ,用谁来标识各自主机上客户或者服务进程的唯一性呢? 为了更好的表示一台主机上服务进程的唯一性,我们采用 端口号

    2024年02月12日
    浏览(39)
  • 【探索Linux】P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)

    在前一篇文章中,我们详细介绍了UDP协议和TCP协议的特点以及它们之间的异同点。 本文将延续上文内容,重点讨论简单的UDP网络程序模拟实现 。通过本文的学习,读者将能够深入了解UDP协议的实际应用,并掌握如何编写简单的UDP网络程序。让我们一起深入探讨UDP网络程序的

    2024年04月08日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包