首页 > 其他分享 >兼容流式套接字与数据报 套接字的回射服务器

兼容流式套接字与数据报 套接字的回射服务器

时间:2024-04-16 09:58:28浏览次数:21  
标签:函数 端口 流式 TCP 服务器 接字 回射 select

实验流程:

1)设计基于select模型的双协议服务器方案

  1. 创建套接字:为每种协议创建一个套接字(例如,TCP和UDP)。
  2. 绑定套接字:将套接字绑定到指定的端口上。
  3. 设置套接字选项:为每个套接字设置相应的选项,例如允许重用地址、设置超时时间等。
  4. 监听套接字:对于TCP套接字,需要调用listen()函数进行监听。
  5. 添加套接字到fd_set:将套接字的文件描述符添加到fd_set中,以便在select()函数中使用。
  6. 使用select()函数:使用select()函数来监视套接字的文件描述符,以检测是否有新的连接或数据到达。
  7. 处理事件:根据select()函数返回的结果,处理相应的事件,例如接受新连接、读取数据、发送数据等。
  8. 关闭套接字:在完成所有操作后,关闭套接字并释放资源。

 

(2)编程实现基于select模型的双协议服务器

服务器:TCP使用27015端口、UDP使用27011端口

 

 

 

客户端:每次发送前进行协议选择,选择后输入发送内容

 

 

效果演示:

 

 

 

(3)抓包分析

 

看到发送内容为google

 

 

 

标签:函数,端口,流式,TCP,服务器,接字,回射,select
From: https://www.cnblogs.com/angetenar/p/18137467

相关文章

  • IFreeSql各数据库连接字符串格式
    IFreeSql各数据库连接字符串格式 DataTypeConnectionStringDataType.MySqlDataSource=127.0.0.1;Port=3306;UserID=root;Password=root;InitialCatalog=cccddd;Charset=utf8;SslMode=none;Minpoolsize=1DataType.PostgreSQLHost=192.168.164.10;Port=5432;Us......
  • 突破编程_C++_网络编程(Windows 套接字(阻塞模式与非阻塞模式))
    1阻塞模式与非阻塞模式的概念(1)阻塞模式概念:在阻塞模式下,当套接字执行I/O操作时,如果操作不能立即完成,调用函数会一直等待直到操作完成。在等待期间,执行操作的线程会被阻塞,无法继续执行其他任务。特点:简单直观:对于许多简单的网络应用来说,阻塞模式编程简单直观,易于理......
  • Java8 Stream API全面解析——高效流式编程的秘诀
    文章目录什么是StreamApi?快速入门流的操作创建流中间操作filter过滤map数据转换flatMap合并流distinct去重sorted排序limit限流skip跳过peek操作终结操作forEach遍历forEachOrdered有序遍历count统计数量min最小值max最大值reduce聚合collect收集anyM......
  • 突破编程_C++_网络编程(Windows 套接字(setsockopt 选项设置))
    1setsockopt函数介绍Windows套接字(Winsock)的setsockopt函数是用于设置套接字选项的重要工具。通过这个函数,开发者可以调整套接字的行为,以满足特定的网络应用需求。(1)函数原型intsetsockopt(SOCKETs,intlevel,intoptname,constchar*optval,intop......
  • 突破编程_C++_网络编程(Windows 套接字(API 接口(2)))
    1TCP连接管理1.1connect函数connect函数用于发起一个TCP连接请求到远程服务器。这个函数通常用于客户端套接字,以建立与服务器的连接。(1)函数原型intconnect(SOCKETs,conststructsockaddr*name,intnamelen);(2)参数说明s:一个已创建但未连接的套接字描述符......
  • 突破编程_C++_网络编程(Windows 套接字(常用数据结构))
    1WSADATAWSADATA结构体包含了关于Winsock实现的一些详细信息,定义如下:structWSAData{WORDwVersion;//Winsock版本号WORDwHighVersion;//Winsock动态库支持的最高版本号charszDescription[WSADESCRIPTION_LEN+1];//Winsock描......
  • 突破编程_C++_网络编程(Windows 套接字(API 接口(1)))
    1初始化与清理1.1WSAStartupWSAStartup函数用于初始化Winsock库,并指定应用程序所需的Winsock版本。它允许应用程序与WinsockDLL(动态链接库)建立联系,并准备Winsock环境以供后续使用。(1)函数原型如下:intWSAStartup(WORDwVersionRequested,LPWSADATAlpWSAData......
  • 突破编程_C++_网络编程(Windows 套接字(概述))
    1什么是Window套接字编程1.1基本概念Windows的套接字(Socket)是基于Windows操作系统的网络通信编程接口。它起源于UNIX系统的Berkeley套接字,但经过微软和第三方厂商的共同制定,形成了一套适用于Windows环境的标准,即WindowsSocket规范,简称WinSock。Windows......
  • mongodb连接字符串
    mongodb://localhost:27017mongodb://root:123456@localhost:27017/testdb?authSource=admin1、连接本地数据库服务器,端口是默认的。mongodb://localhost2、使用用户名fred,密码foobar登录localhost的admin数据库。mongodb://fred:foobar@localhost3、使用用户名fred,密码fo......
  • Blazor学习记录_8.CSS隔离和代码隔离_异常处理_流式渲染
    19.CSS隔离和代码隔离19.1代码隔离使用C#partial关键字,创建一个与razor文件同名,扩展名加.CS的C#类文件,然后把razor文件中的@code中的代码迁移至cs文件中。注意命名空间、泛形参数声明、依赖注入的迁移19.2CSS隔离如同前面代码隔离文件一样,我们创建一个组件样式文......