首页 > 其他分享 >Unity运用socket传输信息(同步)

Unity运用socket传输信息(同步)

时间:2023-10-09 18:22:05浏览次数:35  
标签:socket Text System 传输 Unity client using byte public

客户端:

在UGUI中创建两个Button,一个是连接服务器,一个是发送消息的按钮,分别绑定Connection和SendMessage两个函数

并且创建一个InputField和一个Text文本,Text文本用于显示服务器回传的消息,InputField用于输入要发送的消息

以下是代码:

 1 using System.Collections;
 2 using System.Collections.Generic;
 3 using System.Net.Sockets;
 4 using UnityEngine;
 5 using UnityEngine.UI;
 6 
 7 public class Client : MonoBehaviour
 8 {
 9     Socket client;
10     public InputField inputField;
11     public Text text;
12 
13     public void Connection()
14     {
15         client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
16         client.Connect("127.0.0.1",10086);
17     }
18 
19     public void SendMessage()
20     {
21         //发送数据报文
22         string messageToServer = inputField.text;
23         byte[] sendMessage = System.Text.Encoding.UTF8.GetBytes(messageToServer);
24         client.Send(sendMessage);
25         //接收数据报文
26         byte[] messageToClient = new byte[1024];
27         int count = client.Receive(messageToClient);
28         string messageFromServer = System.Text.Encoding.UTF8.GetString(messageToClient,0,count);
29         text.text = messageFromServer;
30         client.Close();
31     }
32 }
客户端代码

服务端:

服务端采用VS提供的WFP窗口做服务端,可以添加一些控件来美化GUI界面

以下是我做的一个简单的GUI界面

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Net;
 5 using System.Net.Sockets;
 6 using System.Reflection.Emit;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 
10 namespace 同步聊天Server
11 {
12     public static class Server
13     {
14         public static string showMessag="";
15         public static void OpenServer()
16         {
17             Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
18             IPAddress ip = IPAddress.Parse("127.0.0.1");
19             IPEndPoint serverAddress = new IPEndPoint(ip, 10086);
20             server.Bind(serverAddress);
21             server.Listen(10);//如果为零,则表示不受限制
22             showMessag += "服务器启动成功";
23             Socket oneToOnePort = server.Accept();
24             byte[] messageFromClient = new byte[1024];
25             int count = oneToOnePort.Receive(messageFromClient);
26             string message = Encoding.UTF8.GetString(messageFromClient, 0, count);
27             showMessag += message;
28             byte[] messageToClient = Encoding.UTF8.GetBytes(message);
29             oneToOnePort.Send(messageToClient);
30         }
31 
32     }
33 }
服务端代码

 

 

 

翻译

搜索

复制

标签:socket,Text,System,传输,Unity,client,using,byte,public
From: https://www.cnblogs.com/qingyuan0213/p/17752644.html

相关文章

  • HarmonyOS网络管理开发—Socket连接
     简介Socket连接主要是通过Socket进行数据传输,支持TCP/UDP/TLS协议。基本概念● Socket:套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。● TCP:传输控制协议(Transmission Control Protocol)。是一种面向连接的、可靠的、基于字节流的传输层通......
  • lz4压缩传输
    如果用传统SCP远程拷贝,速度是比较慢的。现在采用lz4压缩传输。LZ4是一个非常快的无损压缩算法,压缩速度在单核300MB/S,可扩展支持多核CPU。它还具有一个非常快速的解码器,速度单核可达到和超越1GB/S。通常能够达到多核系统上的RAM速度限制。lz4需要安装,事先做好无密码登陆操作,则不要......
  • 高效数据传输:Java通过绑定快速将数据导出至Excel
    摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言把数据导出至Excel是很常见的需求,而数据的持久化,往往又放在数据库中。因此把数据库中的数据导出到Excel中,成了非常普遍的一个需求......
  • 检查一个Socket是否可连接
    //检查一个Socket是否可连接privateboolIsSocketConnected(Socketclient){boolblockingState=client.Blocking;try{byte[]tmp=newbyte[1];client.Blocking=fals......
  • Unity 通信方案 - 使用 Google Protobuf 序列化数据
    1.下载和编译1.1下载ProtoBuf源文件从github下载最新的protoBuf库,如下图所示 Releases·protocolbuffers/protobuf(github.com)1.2编译dll和导入解压后打开/scharp/src中的sln工程文件 选择Release,Google.Protobuf,之后在生成中生成文件在......
  • 【Unity】 ScriptableObject ——生成多个ScriptableObject作为子对象,可以点击展开并
     官方是这么介绍ScriptabelObject的: “ScriptableObject是一个可独立于类实例来保存大量数据的数据容器。ScriptableObject的一个主要用例是通过避免重复值来减少项目的内存使用量。如果项目有一个预制件在附加的MonoBehaviour脚本中存储不变的数据,这将非常有用。每次实......
  • springboot整合websocket
    引入依赖<!--webSocket--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>配置类/***websocket配置类*/@ConfigurationpublicclassWebS......
  • MQTT(消息队列遥测传输)
    MessageQueuingTelemetryTransport--消息队列遥测传输协议MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代......
  • Python TCP socket
    Python TCPsocketsocket.listen(n)简单来说,这里的nt表示socket的”排队个数“一般情况下,一个进程只有一个主线程(也就是单线程),那么socket允许的最大连接数为:n+1如果服务器是多线程,比如上面的代码例子是开了2个线程,那么socket允许的最大连接数就是:n+2换句话说:排队的......
  • TCP Socket 数据发送和接收时进制转换
       确实经过了转换:十六进制--》十进制--》ASCII字符十六进制的61,对应十进制的97,对应ASCII字符a https://blog.csdn.net/cybersnow/article/details/88079026C#代码://16进制字符串转字节数组  格式为stringsendMessage="000100000006FF0500640......