Add Server and client
This commit is contained in:
parent
3d7c9e3f7f
commit
6258438d44
262 changed files with 2661 additions and 0 deletions
60
Unity network UDP/Assets/scripts/network/Client.cs
Normal file
60
Unity network UDP/Assets/scripts/network/Client.cs
Normal file
|
@ -0,0 +1,60 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading;
|
||||
|
||||
|
||||
class Client
|
||||
{
|
||||
private UdpClient client;
|
||||
private IPEndPoint ep;
|
||||
private Thread receiveThread;
|
||||
|
||||
private volatile Boolean connected = false;
|
||||
|
||||
public Client(String ip,int port)
|
||||
{
|
||||
ep = new IPEndPoint(IPAddress.Parse(ip), port);
|
||||
client = new UdpClient();
|
||||
receiveThread = new Thread(new ThreadStart(loop));
|
||||
Register.registerClass();
|
||||
}
|
||||
|
||||
public void connect()
|
||||
{
|
||||
client.Connect(ep);
|
||||
connected = true;
|
||||
receiveThread.Start();
|
||||
}
|
||||
|
||||
public void loop()
|
||||
{
|
||||
while (connected)
|
||||
{
|
||||
byte[] data = client.Receive(ref ep);
|
||||
DataBuffer dataBuffer = new DataBuffer(data);
|
||||
int id = dataBuffer.getInt();
|
||||
IPacket packet = (IPacket)Register.instantiate(id);
|
||||
packet.read(dataBuffer);
|
||||
packet.manage(data, this);
|
||||
}
|
||||
}
|
||||
|
||||
public void send(IPacket packet)
|
||||
{
|
||||
DataBuffer data = new DataBuffer();
|
||||
packet.write(data);
|
||||
client.Send(data.getData(), data.getData().Length);
|
||||
}
|
||||
|
||||
public void disconnect()
|
||||
{
|
||||
client.Close();
|
||||
connected = false;
|
||||
}
|
||||
|
||||
}
|
Reference in a new issue