我在Unity的免费版本中开发了一款Android MMO安卓游戏。我在我的电脑上安装了node.js.我应该使用以下服务器 - 客户端代码,因为当我尝试测试它时,我可以让服务器端脚本运行,但无法确定客户端是否正在连接。此外,当我尝试构建apk时,unity会给出一个错误说"使用System.Net.Sockets需要专业版的统一版。"请帮忙!!
服务器端(在node.js上)
`var net = require('net');
var tcp_server = net.createServer(function(socket)
{
socket.write('hello\n');
socket.end('world\n');
});
tcp_server.listen(8000);
console.log("Server Running...");`
客户端(统一c#脚本)
`using UnityEngine;
using System.Collections;
using System.Net.Sockets;
using System.Text;
public class tcpClient : MonoBehaviour
{
static void Main(string[] args)
{
Debug.Log("start");
TcpClient tcpClient = new TcpClient();
tcpClient.Connect("127.0.0.1", 8000);
Debug.Log ("Connected");
NetworkStream clientStream = tcpClient.GetStream();
byte[] message = new byte[4096];
int bytesRead;
bytesRead = 0;
try
{
// Read up to 4096 bytes
bytesRead = clientStream.Read(message, 0, 4096);
}
catch
{
/*a socket error has occured*/
}
//We have read the message.
ASCIIEncoding encoder = new ASCIIEncoding();
Debug.Log(encoder.GetString(message, 0, bytesRead));
//Console.WriteLine(encoder.GetString(message, 0, bytesRead));
tcpClient.Close();
}
}`
答案 0 :(得分:0)
最简单的方法可能是使用socket.io
答案 1 :(得分:0)
首先,如果你想使用原生套接字,你需要Unity3D Pro。
但还有另一种方法可以解决这个问题。
您可以使用其中一个。您可以在Unity资源商店中找到它们。(我知道这些可能不仅仅是这些资产)。 (它们不是免费的,但比Unity pro便宜)。
之后@ploutch提到Socket.IO。这真的很棒。
但不要忘记Unity3D拥有它自己的Network。您可以使用它创建服务器也加入客户端。还有一些提供商非常好,并为您提供额外的选择。
像: