首页 > 其他分享 >基于 Socket 接口实现自定义协议通信

基于 Socket 接口实现自定义协议通信

时间:2023-05-22 10:32:50浏览次数:54  
标签:Socket 自定义 编程 接口 请求 服务端 客户端

访问【WRITE-BUG数字空间】_[内附完整源码和文档]

根据自定义的协议规范,使用 Socket 编程接口编写基本的网络应用软件。 掌握 C 语言形式的 Socket 编程接口用法,能够正确发送和接收网络数据包 开发一个客户端,实现人机交互界面和与服务器的通信 开发一个服务端,实现并发处理多个客户端的请求程序界面不做要求,使用命令行或最简单的窗体即可

一、实验目的

掌握 Socket 编程接口编写基本的网络应用软件

二、 实验内容

根据自定义的协议规范,使用 Socket 编程接口编写基本的网络应用软件。

掌握 C 语言形式的 Socket 编程接口用法,能够正确发送和接收网络数据包

开发一个客户端,实现人机交互界面和与服务器的通信

开发一个服务端,实现并发处理多个客户端的请求程序界面不做要求,使用命令行或最简单的窗体即可

功能要求如下:

运输层协议采用 TCP

客户端采用交互菜单形式,用户可以选择以下功能: a) 连接:请求连接到指定地址和端口的服务端

断开连接:断开与服务端的连接

获取时间: 请求服务端给出当前时间

获取名字:请求服务端给出其机器的名称

活动连接列表:请求服务端给出当前连接的所有客户端信息(编号、IP 地址、端口等)

发消息:请求服务端把消息转发给对应编号的客户端,该客户端收到后显示在屏幕上 g) 退出:断开连接并退出客户端程序

服务端接收到客户端请求后,根据客户端传过来的指令完成特定任务:

  • 向客户端传送服务端所在机器的当前时间
  • 向客户端传送服务端所在机器的名称
  • 向客户端传送当前连接的所有客户端信息
  • 将某客户端发送过来的内容转发给指定编号的其他客户端
  • 采用异步多线程编程模式,正确处理多个客户端同时连接,同时发送消息的情况

本实验涉及到网络数据包发送部分不能使用任何的 Socket 封装类,只能使用最底层的 C 语言形式的 Socket API

本实验可组成小组,服务端和客户端可由不同人来完成

二、主要仪器设备

联网的 PC 机

Visual C++、gcc 等 C++ 集成开发环境。

基于 Socket 接口实现自定义协议通信_网络数据

基于 Socket 接口实现自定义协议通信_网络数据_02

基于 Socket 接口实现自定义协议通信_客户端_03

基于 Socket 接口实现自定义协议通信_网络数据_04

标签:Socket,自定义,编程,接口,请求,服务端,客户端
From: https://blog.51cto.com/u_16075443/6321186

相关文章

  • flutter dio自定义http client
    finaldio=Dio();DiogetMyDio(){initAdapter();dio.options.headers={'apiKey':'xxxxx'};dio.options.connectTimeout=constDuration(seconds:15);dio.options.receiveTimeout=constDuration(seconds:15);di......
  • 计算机组成原理:系统总线与总线接口实验
    实验名称:3.系统总线与总线接口实验实验目的理解总线的概念及其特性。掌握控制总线的功能和应用。理解总线的功能和和典型工作流程。掌握在总线上协调ALU和外设交换数据的方法。实验设备PC机一台,TDX-CMX实验系统一套。实验预习1、阅读实验指导书,然后回答问题。本实......
  • 学习笔记-Java8新特性-第六节-接口中的默认方法与静态方法
    接口中的默认方法与静态方法默认方法在接口中可以使用default修饰方法,为方法提供默认实现publicinterfaceMyInterface{defaultvoidgetName(){System.out.println("DEFAULT");}}一般情况下,继承了接口的子类,可以不提供接口的实现类优先......
  • springboot自定义拦截器
    之前使用过滤器实现了拦截没有登录的请求,现在使用springboot的拦截器实现1.LoginCheckInterceptor.javapackagecom.minqiliang.interceptor;importcom.alibaba.fastjson.JSONObject;importcom.minqiliang.pojo.Result;importcom.minqiliang.utils.JwtUtils;importlomb......
  • JAVA中的接口详解
    JAVA中的接口详解接口中成员的特点成员变量:只能是常量默认修饰符:public,static,final构造方法:没有成员方法:只能是抽象方法默认修饰符:public,abstract 接口和类的关系类和类的关系:继承关系,只能是单继承,不能多继承,但可以多层继承类和接口的关系:实现关系,可单实现,也可多实......
  • C# socket的基本理解
    博客园中看到的比较准确的socket理解个人学习用途博客部分内容摘抄自网络......
  • knife4j配置swagger接口测试
    导入依赖1<dependency>2<groupId>com.github.xiaoymin</groupId>3<artifactId>knife4j-spring-boot-starter</artifactId>4<version>3.0.3</version>5......
  • 2023/5/21每日随笔 调用chatgpt接口实现项目的基本需要
    首先,对于我要求的工作,gpt完美胜任,那么问题来了,怎么调用chatgpt,是可以免费调用的,但需要keyword,也就得进入chatgpt官网,就得用外网,但是要它的api应用到android上,外网手段就不可取了,于是,准备冲别人搭建的平台上调用,很幸运的是,在B站上还真的找到资源,up主也很好,教我一步一实现,搭建了以......
  • AS3 Socket 通信基础(一)
    我们先来搞清几个概念,这有助于我们更加了解网络通信!  1、网络中进程之间如何通信?  首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一标识一个进程,但是在网络中这是行不通的。其实TCP/IP协议族已经帮我们解决了这个问题,网络层的“ip地址”可......
  • odoo后台调用路由接口
    fromodoo.exceptionsimportUserErrorimportrequestsfromodoo.httpimportrequestdefaction_commit_approval(self,action_type='commit_approval'):"""action_type:commit_approval/cancel_approval......