当前位置: 首页 > news >正文

如何评价企业网站推广效果?保险公司销售好做吗

如何评价企业网站推广效果?,保险公司销售好做吗,广州海珠网络营销外包,移动互联网应用的使用情况表格在本文中#xff0c;我将向你介绍一个在Unity中实现的简单TCP服务器脚本,和一个简单的客户端脚本. 脚本 MyTcpServer 允许Unity应用创建一个TCP服务器#xff0c;监听客户端的连接、异步处理客户端消息#xff0c;并通过事件与Unity应用中的其他模块进行通信。 MyTcpServe…在本文中我将向你介绍一个在Unity中实现的简单TCP服务器脚本,和一个简单的客户端脚本. 脚本 MyTcpServer 允许Unity应用创建一个TCP服务器监听客户端的连接、异步处理客户端消息并通过事件与Unity应用中的其他模块进行通信。 MyTcpServer 类是使用 C# 的 TcpListener 实现的自定义 TCP 服务器,该服务器监听指定端口的传入 TCP 连接并以异步、非阻塞的方式处理与客户端的通信. AcceptClientsAsync 方法是一个异步方法使用 TcpListener.AcceptTcpClientAsync() 来接受客户端的连接。每当一个新客户端连接时服务器会将其添加到 connectedClients 列表中并为该客户端创建一个新的任务 (Task.Run()) 来处理客户端的消息。 using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; using UnityEngine; using System.IO; using System.Collections.Generic;public class MyTcpServer {private static MyTcpServer instance;private TcpListener tcpListener;private CancellationTokenSource cts new CancellationTokenSource();private ListTcpClient connectedClients new ListTcpClient(); // 管理客户端连接public static bool isOnce false;public static event Actionstring sendEvent;public static MyTcpServer Instance{get{if (instance null){instance new MyTcpServer();}return instance;}}public void StartServer(){try{var p Path.Combine(Application.streamingAssetsPath, MyPort.txt);if (!File.Exists(p)) return;var port File.ReadAllText(p, Encoding.UTF8);Debug.Log($Starting server on port {port});tcpListener new TcpListener(IPAddress.Any, int.Parse(port));tcpListener.Start();isOnce true;Task.Run(() AcceptClientsAsync(cts.Token));}catch (Exception ex){Debug.LogError($Error starting server: {ex.Message});}}private async Task AcceptClientsAsync(CancellationToken token){while (!token.IsCancellationRequested){try{TcpClient client await tcpListener.AcceptTcpClientAsync();Debug.Log($Client connected: {client.Client.RemoteEndPoint});connectedClients.Add(client);_ Task.Run(() HandleClientAsync(client, token));}catch (Exception ex){Debug.LogError($Error accepting client: {ex.Message});}}}private async Task HandleClientAsync(TcpClient client, CancellationToken token){using (client){NetworkStream stream client.GetStream();byte[] buffer new byte[4096];while (!token.IsCancellationRequested){try{int bytesRead await stream.ReadAsync(buffer, 0, buffer.Length, token);if (bytesRead 0) break;string message Encoding.UTF8.GetString(buffer, 0, bytesRead);Debug.Log($Received: {message});sendEvent?.Invoke(message);}catch (Exception ex){Debug.LogError($Error reading from client: {ex.Message});break;}await Task.Delay(10, token);}}// Cleanup on client disconnectconnectedClients.Remove(client);}public void StopServer(){if (cts ! null){cts.Cancel();if (tcpListener ! null){tcpListener.Stop();tcpListener null;}cts.Dispose();cts null;}// Ensure that all connected clients are closed properlyforeach (var client in connectedClients){client.Close();}connectedClients.Clear();} }MyClient 类是一个简单的客户端实现能够与 TCP 服务器进行通信。它提供了连接服务器、发送命令以及关闭连接等基本功能。 using System.Collections; using System.IO; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using UnityEngine;public class MyClient {private TcpClient client;private NetworkStream stream;private static MyClient _ins; // 单例实例private static bool connected false;public static MyClient ins{get{if (_ins null){_ins new MyClient();}return _ins;}}// 私有构造函数防止外部实例化private MyClient(){}public void Init(){if (!connected){connected true;var path Path.Combine(Application.streamingAssetsPath, IpFile.txt);var p Path.Combine(Application.streamingAssetsPath, MyPort.txt);if (!File.Exists(p) || !File.Exists(path)) return;Debug.Log($Reading IP configuration from: {path});Debug.Log($Reading port from: {p});var ipAddress File.ReadAllText(path, Encoding.UTF8);var port File.ReadAllText(p, Encoding.UTF8);Debug.Log(ipAddress);Debug.Log(port);ConnectToServer(ipAddress, int.Parse(port));}}private async void ConnectToServer(string ip, int port){int maxRetryAttempts 5; // 最大重试次数int retryDelayMilliseconds 1500; // 重试间隔单位为毫秒for (int attempt 1; attempt maxRetryAttempts; attempt){try{client new TcpClient();await client.ConnectAsync(ip, port); // 异步连接服务器stream client.GetStream();Debug.Log(Connected to server.);return; // 成功连接则退出方法}catch (SocketException e){Debug.LogError($Attempt {attempt} failed to connect: {e.Message});if (attempt maxRetryAttempts){Debug.Log($Retrying in {retryDelayMilliseconds / 1000} seconds...);await Task.Delay(retryDelayMilliseconds); // 等待重试}else{Debug.LogError(Max retry attempts reached. Unable to connect to server.);}}}}public async Task SendCommand(string command){if (stream ! null client.Connected){try{byte[] data Encoding.UTF8.GetBytes(command);await stream.WriteAsync(data, 0, data.Length); // 发送数据到服务器Debug.Log($Command sent: {command});}catch (SocketException e){Debug.LogError($Error sending command: {e.Message});}}else{Debug.LogWarning(Not connected to server.);}}public void CloseConnection(){if (stream ! null){stream.Close();stream null;}if (client ! null){client.Close();client null;}Debug.Log(Connection closed.);} }
http://www.zqtcl.cn/news/33683/

相关文章:

  • 秒赞网站建设wordpress远程安装
  • 天河手机建网站面试学校网站开发
  • 城市建设理论研究官方网站网站关键词排名怎么做
  • 一个自己的网站宝塔linux面板官网
  • 建筑方案的网站网站收录不好怎么办
  • ui设计师怎么做简历网站赣州经开区最新规划图
  • 网站建设免费空间注册导航做电商网站用什么软件
  • 汝州市住房和城乡规划建设局网站wordpress 多主题
  • 个人网站不备案可以吗下载手机app
  • 网站如何在360做提交wordpress在哪儿设置关键词和描述
  • 做网站需要多网站设计一般要求
  • 郑州网站建设学校企业文化 设计 咨询
  • p2p网站建设方案策划书wordpress设置下拉菜单
  • 北京开发网站片多多免费观看高清影视
  • 河北网站备案承德网站建设价格
  • 单位网站备案wordpress定时器
  • 微网站 免费模板手机网页制作公司排名
  • 石家庄建设银行河北分行招聘网站餐饮店设计哪家好
  • 做网站一个月工资多元国际二维码入口
  • 黑龙江省建设厅的网站首页我爱搜罗 wordpress
  • 网站建设软件有哪些网站备案 备注
  • eclipse 开发jsp网站开发做暖暖视频免费观看免费网站
  • 免费下载ppt模板网站有哪些织梦网站模板免费
  • 惠州的企业网站建设如何做网站连接
  • 以前做的网站怎么才能登陆后台大宗交易平台有哪些
  • vs2008 新建网站做电影网站会有什么惩罚
  • 婚恋网站策划学校做网站方案
  • 讯美 深圳网站建设学做宝宝辅食的网站
  • 孝感网站建设做封面网站
  • 陕西省建设网站 五大员过期齐齐哈尔市建设网站