2-3
Unity创建C#脚本
using UnityEngine;
using System.Collections;
using System.Net;
using System.Net.Sockets;
using System.IO;
namespace Net
{
public class ClientSocket
{
private static byte[] result = new byte[1024];
private static Socket clientSocket;
public bool IsConnected = false;
public ClientSocket(){
clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
}
public void ConnectServer(string ip,int port)
{
IPAddress mIp = IPAddress.Parse(ip);
IPEndPoint ip_end_point = new IPEndPoint(mIp, port);
try {
clientSocket.Connect(ip_end_point);
IsConnected = true;
Debug.Log("连接服务器成功");
}
catch
{
IsConnected = false;
Debug.Log("连接服务器失败");
return;
}
int receiveLength = clientSocket.Receive(result);
ByteBuffer buffer = new ByteBuffer(result);
int len = buffer.ReadShort();
string data = buffer.ReadString();
Debug.Log("服务器返回数据:" + data);
}
public void SendMessage(string data)
{
if (IsConnected == false)
return;
try
{
ByteBuffer buffer = new ByteBuffer();
buffer.WriteString(data);
clientSocket.Send(WriteMessage(buffer.ToBytes()));
}
catch
{
IsConnected = false;
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close();
}
}
private static byte[] WriteMessage(byte[] message)
{
MemoryStream ms = null;
using (ms = new MemoryStream())
{
ms.Position = 0;
BinaryWriter writer = new BinaryWriter(ms);
ushort msglen = (ushort)message.Length;
writer.Write(msglen);
writer.Write(message);
writer.Flush();
return ms.ToArray();
}
}
}
}
未完待续...