首页 > 编程语言 >C#TCP通讯(二)

C#TCP通讯(二)

时间:2024-03-12 21:15:13浏览次数:16  
标签:tcpclient 通讯 C# void TCP Camera ReadBytes null port

客户端代码:

 1  byte[] ReadBytes = new byte[1024];  
 2 private void ConnectServer_Camera(string ip, int port)
 3  {
 5          tcpclient= new TcpClient();
 6          tcpclient.BeginConnect(IPAddress.Parse(ip), port, CameraProcess, null);
 8   }
 9  private async void CameraProcess(IAsyncResult ar)
10  {
11             if (tcpclient.Connected)
12             {
13                 tcpclient.EndConnect(ar);
14                 tcpclient.GetStream().BeginRead(ReadBytes , 0, ReadBytes .Length, ReceiveCallBack_Camera, null);
15             }
16             else
17             {
18                 await Task.Delay(2000);
19               
20                 tcpclient.BeginConnect(IPAddress.Parse(cameraIP), cameraPort, CameraProcess, null);
21             }
22   }
24  private void ReceiveCallBack_Camera(IAsyncResult ar)
25  {
27           int len = tcpclient.GetStream().EndRead(ar);
28            if (len > 0)
29            {
30              string str = Encoding.UTF8.GetString(ReadBytes , 0, len);
32            }
33             else
34             {
35              tcpclient= null;
37              ConnectServer_Camera(cameraIP, cameraPort);
38                 }
39            
41  }

 

  private void ConnectServer_Camera(string ip, int port)         {             try             {                 mTcpClient_Camera = new TcpClient();                 mTcpClient_Camera.BeginConnect(IPAddress.Parse(ip), port, CameraProcess, null);             }             catch (Exception e)             {                 mOP01ViewModel.AddRecordInfo(RecordLevel.Error, $"视觉服务连接异常:{e.Message}");             }         }

标签:tcpclient,通讯,C#,void,TCP,Camera,ReadBytes,null,port
From: https://www.cnblogs.com/follow-discoverer/p/18069279

相关文章

  • abc204D 双烤箱烹饪的最短时间
    需要烹饪n道菜,第i道菜耗时t[i],有两个相同的烤箱,一个烤箱同一时间只能烹饪同一道菜。求烹饪完所有菜所需的最短时间?1<=n<=100,1<=t[i]<=100001背包变形,需要选出部分菜用烤箱1,其他用烤箱2,两者的最大值为结果,取所有可能的结果的最小值,即为答案。这里dp[i]表示总耗时为i的方案是否......
  • LACP短超时和长超时对接实验
    实验现象sw1和sw2互联的两条链路加入统一聚合口1,配置为动态聚合具体debug信息见文章最后SW1和SW21、默认情况下lacp为长超时,displink-aggverbri1 本端和对端的flags “B”都没有置位(表示默认为长超时),debugginglacp(debugginglink-aggregationlacpall)报文情况来......
  • Python入门学习笔记(1)Python&VS code下载与配置
    去年夏天,笔者拿到EricMatthes所著的蟒蛇书,一番学习下,为其细致与条理所触动。作为曾经学过C++的NOIP退役选手,笔者深知一个好的语言基础对于后续学习的巨大作用。费曼提到,把新知识、复杂概念解释给完全不懂的人听,是最好的提升知识质量、把知识点融入自己的知识体系的方法。因此......
  • windows、C++怎么看线程在哪个核上运行
    一.要在Windows系统上查看线程运行在哪个处理器核心上,可以使用Windows系统提供的一些工具和方法。在Windows中,可以使用以下几种方式来查看线程运行的处理器核心:使用任务管理器打开任务管理器:可以通过按下 Ctrl+Shift+Esc 组合键快速打开任务管理器,或者通过右键......
  • nodejs集成C++代码:手写简单的addon
    文章目录nodejs与node-gyp手写一个简单的addon编写一个简单的binding.gyp文件编写C++源文件V8版本:addon.ccnapi_api版本:addon_api.cc编译命令JS调用在这个专栏里,已经提到过web系统中c++的两大应用场景了:assembly和cef框架的应用,这两个可以说都是客户......
  • 揭秘Docker镜像:概念、原理、特性的全方位解读与实战常用命令解析
    在当今的云原生时代,Docker凭借其轻量级容器技术彻底改变了软件交付和部署的方式。而Docker镜像作为容器的基石,其背后的奥秘和实际应用更是值得我们深入探讨。本文将全面解析Docker镜像的概念、底层原理、独特特性以及日常运维中常用的命令,让您对Docker镜像有更深层次的理解与掌......
  • abc222D 夹在两升序数组之间的升序数组个数
    给定长度为n的两升序数组A[i]和B[i],其中A[i]<=A[i+1],B[i]<=B[i+1],并且0<=A[i]<=B[i]<=3000,找长度为n的数组C[i],满足A[i]<=C[i]<=B[i]。求满足该条件的C的个数,结果对998244353取余。1<=n<=3000设dp[i][j]表示前i个数以j结尾的方案数,那么$dp[i][j]=\sum_{k=0}^{j}dp[i-1][k]$,这......
  • 【华为OD机试】真题B卷-最大花费金额(C++)
    华为OD机试真题汇总目录  【华为OD机试】真题汇总A+B+C+D券(Python实现)  【华为OD机试】真题汇总A+B+C+D卷(JAVA实现)  【华为OD机试】真题汇总A+B+C+D卷(C++实现)一、题目题目描述:双十一众多商品进行打折销售,小明想购买自己心仪的一些物品,但由于受购买资金限制,......
  • Tarjan算法求SCC,缩点
    Tanjan算法可以在O(n+m)的时间内求出强连通分量,常数小,是个非常优秀的算法。算法实现过程:dfn[x]表示x的dfs生成树上的编号,代表着时间戳,low[x]表示从x结点出发,能够访问到最早的时间戳。<1>进入u时,盖上时间戳,结点入栈。<2>枚举该点的结点的时候,分为三种情况:(1)如果该点v没有访......
  • 「CF78C」 Beaver Game
    题意一场博弈游戏,有\(n\)个长度为\(m\)木棍。两人轮流进行操作,每次操作可选择一根木棒把它进行任意等分,使得分完后每段长度都小于\(k\)。最终无法操作的人判负。两人都执行最优操作,先手名为Timur,后手名为Marsel,输出最终赢家。分析可以分为两种情况:\(n\)为偶数,此时无......