C#通过TCP发送List<string>
using System;
using System.IO;
using System.Net.Sockets;
using System.Text;
using System.Collections.Generic;public static void SendList<string>(Stream stream, List<string> list)
{// 将List<string>对象转换为字节数组byte[] data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(list));// 获取数据长度int length = data.Length;// 创建一个ArraySegment对象,包含数据长度和数据本身ArraySegment<byte> segment = new ArraySegment<byte>(data, 0, length);// 发送数据长度stream.Write(segment.ToArray(), 0, length);
}public static List<string> ReceiveList<string>(Stream stream)
{// 读取数据长度int length = stream.ReadInt32();// 创建一个字节数组,用于接收数据byte[] data = new byte[length];// 读取数据stream.Read(data, 0, length);// 将字节数组转换为List<string>对象return JsonConvert.DeserializeObject<List<string>>(Encoding.UTF8.GetString(data));
}public class Client
{public static void Main(){// 创建一个TCP客户端TcpClient client = new TcpClient("127.0.0.1", 8080);// 获取TCP客户端的StreamStream stream = client.GetStream();// 创建一个List<string>对象List<string> list = new List<string> { "Hello", "World" };// 发送List<string>对象SendList<string>(stream, list);// 接收List<string>对象List<string> receivedList = ReceiveList<string>(stream);// 输出接收到的List<string>对象Console.WriteLine("Received List: " + string.Join(",", receivedList));// 关闭TCP客户端client.Close();}
}
请注意,这个示例代码使用了Json.NET库来将List<string>对象转换为JSON字符串,然后将JSON字符串转换为字节数组。如果您没有安装Json.NET库,可以使用NuGet包管理器安装它。
相关文章:
C#通过TCP发送List<string>
using System; using System.IO; using System.Net.Sockets; using System.Text; using System.Collections.Generic;public static void SendList<string>(Stream stream, List<string> list) {// 将List<string>对象转换为字节数组byte[] data Encoding.U…...
Mactracker for mac(硬件信息查询工具)免费下载
想知道你电脑的信息吗?Mactracker Mac版是Macos上一款硬件信息查询工具,可以查询电脑中的硬件信息,还可以查看您使用软件的具体情况,苹果电脑产品和周边产品的信息,售价等等,让您对电脑有更多深刻的了解。 …...
MES管理系统中常规的生产建模有哪些
随着制造业的快速发展,MES生产管理系统已经成为了现代制造业不可或缺的核心系统。MES通过对生产过程进行建模,实现了生产过程的可视化、可控制和可优化,为企业提供了全方位的生产管理解决方案。本文将深化对MES管理系统及其主要生产模型的理解…...
电商API:淘宝京东拼多多1688多电商平台的商品销量库存信息获取
item_get 获得淘宝商品详情 获取APIkeyitem_get_pro 获得淘宝商品详情高级版item_review 获得淘宝商品评论item_fee 获得淘宝商品快递费用item_password 获得淘口令真实urlitem_list_updown 批量获得淘宝商品上下架时间seller_info 获得淘宝店铺详情item_search 按关键字搜索淘…...
EPLAN软件中的术语-主数据‘’技术分享
在EPLAN中,主数据(Master Data)这个词被经常、反复地提及,我曾经困惑了很长时间,不得要领。在EPLAN的帮助系统中,它列举了一部分内容,说这些这些就是主数据,但没有解释什么是主数据,除了上面这些…...
web应用程序、Django框架的学习
web应用程序 什么是web? Web应用程序是一种可以通过Web访问的应用程序,用户只需要有浏览器即可,不需要再安装其他软件 案例: 淘宝网、京东网、博客园、等都是基于web应用的程序 应用程序有两种模式C/S、B/S。C/S是客户端/服务器端程序,…...
【c++之设计模式】组合使用:抽象工厂模式与单例模式
简介 学以致用,使用抽象工厂及单例模式创建不同轿车及轿车装饰品。 代码 定义一个抽象工厂类来创建不同类型的轿车和轿车装饰品。抽象工厂类中具有创建不同类型轿车和轿车装饰品的纯虚方法。 abstractFactory.h #pragma once#include "Car.h" #inclu…...
Adobe Photoshop Elements 2024 v24.0 简体中文版 | 中文直装版
下载: http://dt1.8tupian.net/2/29913a53b500.pg3介绍:Photoshop Elements 2024(简称PSE即PS简化版)是一款定位在数码摄影领域的全新的图像处理软件,该软件包括了专业版的大多数特性,只有少量的简化选项,提供了调整颜…...
seata事务回滚引起的skywalking数据库存储空间剧增的问题排查
基本信息 产品名称:ATS3.0 问题分类:编码问题 环境类型:环境无关 问题现象 11月1日上午华润DBA收到数据库磁盘空间告警,检查后发现skywalking连接的mysql数据库占用空间从之前一直是比较稳定的,但是10月31日…...
数据库SQL
数据库&SQL 数据库基本概念数据库DataBase定义 数据库管理系统(DBMS)定义在JAVA项目中与数据库的结合数据库管理系统中常见的概念库与表的关系 SQL数据类型数字类型浮点类型字符类型TEXT类型日期类型 SQL语言的分类DDL:数据定义语言修改表结构的注意事项 DML:数据操作语言D…...
C语言实现给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
完整代码: // 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 #include<stdio.h>int main(){int num;int len0;printf("请输入一个不多于5位的正整数:");scanf("%d",&n…...
101 对称二叉树
原题链接:101 对称二叉树 全代码: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : va…...
安全测试,接口返回内容遍历~
最近公司被人大量爬取数据,查了一下发现,用户主页接口,没有加用户登录校验,返回了用户的敏感信息有手机号和邮箱,其实这个接口是用不到这些信息的。再加上用户id是自增长的,所以很容易被别人爬取。 既然这…...
【GIS】地理坐标系与投影坐标系的区别
在地理信息系统中,坐标系的选择和使用是至关重要的。我们通常使用的坐标系有两种:地理坐标系和投影坐标系。本文将详细介绍这两种坐标系的概念、区别、转换方式以及常见投影。 一、定义 地理坐标系(Geographic Coordinate System)…...
太细了:美团一面连环夺命20问,搞定就60W起
说在前面 在40岁老架构师尼恩的(50)读者社群中,经常有小伙伴,需要面试美团、京东、阿里、 百度、头条等大厂。 下面是一个小伙伴成功拿到通过了美团一面面试,现在把面试真题和参考答案收入咱们的宝典。 通过美团一面…...
休眠和睡眠有哪些区别?如何让电脑一键休眠?
电脑中有休眠和睡眠,那么它们有什么区别呢?下面我们就通过本文来了解一下。 休眠和睡眠的区别 电脑在睡眠状态时,会切断内存之外的设备电源,电脑会进入睡眠状态,当再次唤醒电脑后,不会影响睡眠前保存好的工…...
Kibana使用Timelion根据时间序列展示数据
天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…...
基础:JavaScript的怪癖之一:提升(Hoisting)
JavaScript,通常被称为“Web 语言”,是一种多功能且广泛使用的编程语言。它以其怪癖而闻名,其中之一就是 hoisting(提升)。无论你是经验丰富的开发人员还是刚刚开始你的编码之旅,理解提升对于编写干净和高效…...
前端特殊字符转码
前端特殊字符转码 建议 最好不要传名称,传ID 是在不行就用这个方法 name encodeURIComponent(name),...
Python开发运维:Python3.7安装Django3.2
目录 一、理论 1.pip 2.Django 3.Pycharm国内镜像源 二、实验 1.Python3.7安装Django3.2 三、问题 1.安装django3.2报错 2.pip更新报错 一、理论 1.pip (1)概念 1)pip pip 是 Python 的包安装程序。其实,pip 就是 Pyt…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
