文胜 发表于 2023-10-9 23:00:50

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

客户端:
在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;
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;
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 }服务端代码 
 
 
翻译
搜索
复制

来源:https://www.cnblogs.com/qingyuan0213/archive/2023/10/09/17752644.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Unity运用socket传输信息(同步)