diff --git a/ZoFo/GameCore/Client.cs b/ZoFo/GameCore/Client.cs index ab3d960..5ee0546 100644 --- a/ZoFo/GameCore/Client.cs +++ b/ZoFo/GameCore/Client.cs @@ -22,7 +22,7 @@ namespace ZoFo.GameCore public void OnDataSend(string data) { List updateDatas = JsonSerializer.Deserialize>(data); - // ��� ����� switch + // тут будет switch } public void GameEndedUnexpectedly(){ } diff --git a/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs b/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs index 355342f..ea57f60 100644 --- a/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs +++ b/ZoFo/GameCore/GameManagers/NetworkManager/ClientNetworkManager.cs @@ -1,31 +1,37 @@ using System; +using System.Collections.Generic; using System.Data.SqlTypes; using System.Net; using System.Net.Sockets; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading; +using System.Threading.Tasks; +using ZoFo.GameCore.GameManagers.NetworkManager.Updates; namespace ZoFo.GameCore.GameManagers.NetworkManager { public class ClientNetworkManager { - private IPAddress iPAddress = IPAddress.Any; private int port = 7632; private EndPoint endPoint; private Socket socket; + List updates = new List(); public delegate void OnDataSent(string Data); public event OnDataSent GetDataSent; // event public void Init() //create endPoint, socket { - endPoint = new IPEndPoint(iPAddress, port); socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); } public void SendData() { - + while(socket.Connected) + { + byte[] bytes = Encoding.UTF8.GetBytes(updates.ToString()); + socket.Send(bytes); + } } public void StopConnection() @@ -34,23 +40,39 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager socket.Close(); } - public void JoinRoom() // multyplayer + /// + /// приложение пытается подключиться к комнате + /// + /// + /// + public void JoinRoom(string ip) // multyplayer { + endPoint = new IPEndPoint(IPAddress.Parse(ip), port); + + socket.Connect(endPoint); + SendData(); - StartListening(); + Thread listen = new Thread(StartListening); + listen.Start(); } + /// + /// создается + /// public void JoinYourself() // single player { + endPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), port); + + socket.Connect(endPoint); + SendData(); - StartListening(); + Thread listen = new Thread(StartListening); + listen.Start(); } //поток 2 public void StartListening() { - socket.Connect(endPoint); - while(socket.Connected) { byte[] bytes = new byte[2048];