mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-02 19:42:05 -04:00
59 lines
1.6 KiB
C#
59 lines
1.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Net.Sockets;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using FFXIVClassic.Common;
|
|
|
|
namespace FFXIVClassic_World_Server.DataObjects
|
|
{
|
|
class ZoneServer
|
|
{
|
|
public readonly string zoneServerIp;
|
|
public readonly int zoneServerPort;
|
|
public readonly int[] ownedZoneIds;
|
|
public bool isConnected = false;
|
|
public Socket zoneServerConnection;
|
|
|
|
public ZoneServer(string ip, int port)
|
|
{
|
|
zoneServerIp = ip;
|
|
zoneServerPort = port;
|
|
}
|
|
|
|
public void Connect()
|
|
{
|
|
Program.Log.Info("Connecting to zone server @ {0}:{1}", zoneServerIp, zoneServerPort);
|
|
IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse(zoneServerIp), zoneServerPort);
|
|
zoneServerConnection = new Socket(AddressFamily.InterNetwork,
|
|
SocketType.Stream, ProtocolType.Tcp);
|
|
|
|
try
|
|
{
|
|
zoneServerConnection.Connect(remoteEP);
|
|
isConnected = true;
|
|
}
|
|
catch (Exception e)
|
|
{ Program.Log.Error("Failed to connect"); return; }
|
|
}
|
|
|
|
public void SendPacket(SubPacket subpacket)
|
|
{
|
|
if (isConnected)
|
|
{
|
|
byte[] packetBytes = subpacket.GetBytes();
|
|
|
|
try
|
|
{
|
|
zoneServerConnection.Send(packetBytes);
|
|
}
|
|
catch (Exception e)
|
|
{ Program.Log.Error("Weird case, socket was d/ced: {0}", e); }
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|