FirstWorkingRdpCommit
This commit is contained in:
parent
dae5cab5c6
commit
2c3405d007
7 changed files with 17 additions and 35 deletions
|
@ -77,8 +77,6 @@ namespace ZoFo.GameCore
|
||||||
|
|
||||||
public void JoinRoom(string ip, int port)
|
public void JoinRoom(string ip, int port)
|
||||||
{
|
{
|
||||||
EndPoint endPoint = new IPEndPoint(IPAddress.Parse(ip), port);
|
|
||||||
networkManager.EndPointServer = endPoint;
|
|
||||||
networkManager.JoinRoom(ip, port);
|
networkManager.JoinRoom(ip, port);
|
||||||
}
|
}
|
||||||
public void JoinYourself(int port) { networkManager.JoinYourself(port); }
|
public void JoinYourself(int port) { networkManager.JoinYourself(port); }
|
||||||
|
|
|
@ -41,10 +41,10 @@ public class SelectModeMenu : AbstractGUI
|
||||||
// single
|
// single
|
||||||
Server server = new Server();
|
Server server = new Server();
|
||||||
Client client = new Client();
|
Client client = new Client();
|
||||||
server.CreateRoom(false);
|
|
||||||
client.JoinYourself(server.MyIp.Port);
|
|
||||||
AppManager.Instance.SetServer(server);
|
AppManager.Instance.SetServer(server);
|
||||||
AppManager.Instance.SetClient(client);
|
AppManager.Instance.SetClient(client);
|
||||||
|
server.CreateRoom(false);
|
||||||
|
client.JoinYourself(server.MyIp.Port);
|
||||||
AppManager.Instance.ChangeState(GameState.HostPlaying);
|
AppManager.Instance.ChangeState(GameState.HostPlaying);
|
||||||
AppManager.Instance.SetGUI(new HUD());
|
AppManager.Instance.SetGUI(new HUD());
|
||||||
|
|
||||||
|
|
|
@ -104,10 +104,10 @@ public class SelectingServerGUI : AbstractGUI
|
||||||
// host
|
// host
|
||||||
Server server = new Server(); //Server Logic MultiPlayer
|
Server server = new Server(); //Server Logic MultiPlayer
|
||||||
Client client = new Client();
|
Client client = new Client();
|
||||||
server.CreateRoom(true);
|
|
||||||
client.JoinYourself(server.MyIp.Port);
|
|
||||||
AppManager.Instance.SetServer(server);
|
AppManager.Instance.SetServer(server);
|
||||||
AppManager.Instance.SetClient(client);
|
AppManager.Instance.SetClient(client);
|
||||||
|
server.CreateRoom(true);
|
||||||
|
client.JoinYourself(server.MyIp.Port);
|
||||||
string key = server.MyIp.ToString();
|
string key = server.MyIp.ToString();
|
||||||
AppManager.Instance.debugHud.Set(key, "MultiPlayer");
|
AppManager.Instance.debugHud.Set(key, "MultiPlayer");
|
||||||
// ваш код здесь
|
// ваш код здесь
|
||||||
|
|
|
@ -101,7 +101,7 @@ namespace ZoFo.GameCore.GameManagers
|
||||||
protected override void Update(GameTime gameTime)
|
protected override void Update(GameTime gameTime)
|
||||||
{
|
{
|
||||||
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed ||
|
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed ||
|
||||||
Keyboard.GetState().IsKeyDown(Keys.Escape)) { server.CloseConnection(); Exit(); }
|
Keyboard.GetState().IsKeyDown(Keys.Escape)) { Exit(); }
|
||||||
|
|
||||||
|
|
||||||
// debugHud.Set("key", "value");
|
// debugHud.Set("key", "value");
|
||||||
|
|
|
@ -18,6 +18,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
{
|
{
|
||||||
private int port = 0;
|
private int port = 0;
|
||||||
private IPEndPoint endPoint;
|
private IPEndPoint endPoint;
|
||||||
|
private IPEndPoint sendingEP;
|
||||||
private Socket socket;
|
private Socket socket;
|
||||||
List<UpdateData> updates = new List<UpdateData>();
|
List<UpdateData> updates = new List<UpdateData>();
|
||||||
private List<Datagramm> waitingDatagramm = new List<Datagramm>();
|
private List<Datagramm> waitingDatagramm = new List<Datagramm>();
|
||||||
|
@ -26,21 +27,15 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
public event OnDataSent GetDataSent; // event
|
public event OnDataSent GetDataSent; // event
|
||||||
public bool IsConnected { get { return socket.Connected; } }
|
public bool IsConnected { get { return socket.Connected; } }
|
||||||
public IPEndPoint InfoConnect => (IPEndPoint)socket.LocalEndPoint ?? endPoint;
|
public IPEndPoint InfoConnect => (IPEndPoint)socket.LocalEndPoint ?? endPoint;
|
||||||
public EndPoint EndPointServer { get; set; }
|
|
||||||
public ClientNetworkManager()
|
public ClientNetworkManager()
|
||||||
{
|
{
|
||||||
Init();
|
Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool SocketConnected()
|
|
||||||
{
|
|
||||||
return socket.Connected;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Init() //create endPoint, socket
|
public void Init() //create endPoint, socket
|
||||||
{
|
{
|
||||||
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
|
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
|
||||||
endPoint = new IPEndPoint(GetIp(), 0);
|
endPoint = new IPEndPoint(GetIp(), 8081);
|
||||||
socket.Bind(endPoint);
|
socket.Bind(endPoint);
|
||||||
Thread thread = new Thread(StartListening);
|
Thread thread = new Thread(StartListening);
|
||||||
thread.Start();
|
thread.Start();
|
||||||
|
@ -48,8 +43,10 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
|
|
||||||
public void SendData()
|
public void SendData()
|
||||||
{
|
{
|
||||||
byte[] bytes = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(updates)); //нужно сериализовать
|
Datagramm Datagramm = new Datagramm();
|
||||||
socket.Send(bytes);
|
Datagramm.updateDatas = updates;
|
||||||
|
byte[] bytes = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(Datagramm)); //нужно сериализовать
|
||||||
|
socket.SendTo(bytes, sendingEP);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddData(UpdateData UpdateData)
|
public void AddData(UpdateData UpdateData)
|
||||||
|
@ -92,7 +89,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
Datagramm Dgramm = new Datagramm() { DatagrammId = DatagrammId };
|
Datagramm Dgramm = new Datagramm() { DatagrammId = DatagrammId };
|
||||||
string data = JsonSerializer.Serialize(Dgramm);
|
string data = JsonSerializer.Serialize(Dgramm);
|
||||||
byte[] buffer = Encoding.UTF8.GetBytes(data);
|
byte[] buffer = Encoding.UTF8.GetBytes(data);
|
||||||
socket.SendTo(buffer, EndPointServer);
|
socket.SendTo(buffer, sendingEP);
|
||||||
|
|
||||||
}
|
}
|
||||||
void CheckDatagramm()
|
void CheckDatagramm()
|
||||||
|
@ -124,19 +121,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
/// <param name="port"></param>
|
/// <param name="port"></param>
|
||||||
public void JoinRoom(string ip, int port) // multyplayer
|
public void JoinRoom(string ip, int port) // multyplayer
|
||||||
{
|
{
|
||||||
|
sendingEP = new IPEndPoint(IPAddress.Parse(ip), port);
|
||||||
endPoint = new IPEndPoint(IPAddress.Parse(ip), port);
|
|
||||||
socket.Connect(endPoint);
|
|
||||||
SendData();
|
|
||||||
Thread listen = new Thread(StartListening);
|
|
||||||
listen.IsBackground = true;
|
|
||||||
listen.Start();
|
|
||||||
}
|
|
||||||
public void JoinRoom(IPEndPoint endPoint) // multyplayer
|
|
||||||
{
|
|
||||||
|
|
||||||
this.endPoint = endPoint;
|
|
||||||
socket.Connect(endPoint);
|
|
||||||
SendData();
|
SendData();
|
||||||
Thread listen = new Thread(StartListening);
|
Thread listen = new Thread(StartListening);
|
||||||
listen.IsBackground = true;
|
listen.IsBackground = true;
|
||||||
|
@ -148,8 +133,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void JoinYourself(int port) // single player
|
public void JoinYourself(int port) // single player
|
||||||
{
|
{
|
||||||
endPoint = new IPEndPoint(GetIp(), port);
|
sendingEP = AppManager.Instance.server.MyIp;
|
||||||
socket.Connect(endPoint);
|
|
||||||
SendData();
|
SendData();
|
||||||
Thread listen = new Thread(StartListening);
|
Thread listen = new Thread(StartListening);
|
||||||
listen.IsBackground = true;
|
listen.IsBackground = true;
|
||||||
|
@ -159,7 +143,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
public static IPAddress GetIp()
|
public static IPAddress GetIp()
|
||||||
{
|
{
|
||||||
string hostName = Dns.GetHostName(); // Retrive the Name of HOST
|
string hostName = Dns.GetHostName(); // Retrive the Name of HOST
|
||||||
var ipList = Dns.GetHostByName(hostName).AddressList;
|
var ipList = Dns.GetHostEntry(hostName).AddressList;
|
||||||
|
|
||||||
foreach (var ip in ipList)
|
foreach (var ip in ipList)
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
||||||
private bool isMultiplayer;
|
private bool isMultiplayer;
|
||||||
//Player Id to Player endPoint
|
//Player Id to Player endPoint
|
||||||
private List<IPEndPoint> clientsEP;
|
private List<IPEndPoint> clientsEP;
|
||||||
private IPEndPoint endPoint;
|
public IPEndPoint endPoint;
|
||||||
private List<UpdateData> commonUpdates;
|
private List<UpdateData> commonUpdates;
|
||||||
private List<UpdateData> importantUpdates;
|
private List<UpdateData> importantUpdates;
|
||||||
private List<Datagramm> sendedData;
|
private List<Datagramm> sendedData;
|
||||||
|
|
|
@ -29,7 +29,7 @@ namespace ZoFo.GameCore
|
||||||
{
|
{
|
||||||
private ServerNetworkManager networkManager;
|
private ServerNetworkManager networkManager;
|
||||||
private int ticks = 0;
|
private int ticks = 0;
|
||||||
//public IPEndPoint MyIp { get { return networkManager.InfoConnect; } }
|
public IPEndPoint MyIp { get { return networkManager.endPoint; } }
|
||||||
public Server()
|
public Server()
|
||||||
{
|
{
|
||||||
networkManager = new ServerNetworkManager();
|
networkManager = new ServerNetworkManager();
|
||||||
|
|
Loading…
Add table
Reference in a new issue