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)
|
||||
{
|
||||
EndPoint endPoint = new IPEndPoint(IPAddress.Parse(ip), port);
|
||||
networkManager.EndPointServer = endPoint;
|
||||
networkManager.JoinRoom(ip, port);
|
||||
}
|
||||
public void JoinYourself(int port) { networkManager.JoinYourself(port); }
|
||||
|
|
|
@ -41,10 +41,10 @@ public class SelectModeMenu : AbstractGUI
|
|||
// single
|
||||
Server server = new Server();
|
||||
Client client = new Client();
|
||||
server.CreateRoom(false);
|
||||
client.JoinYourself(server.MyIp.Port);
|
||||
AppManager.Instance.SetServer(server);
|
||||
AppManager.Instance.SetClient(client);
|
||||
server.CreateRoom(false);
|
||||
client.JoinYourself(server.MyIp.Port);
|
||||
AppManager.Instance.ChangeState(GameState.HostPlaying);
|
||||
AppManager.Instance.SetGUI(new HUD());
|
||||
|
||||
|
|
|
@ -104,10 +104,10 @@ public class SelectingServerGUI : AbstractGUI
|
|||
// host
|
||||
Server server = new Server(); //Server Logic MultiPlayer
|
||||
Client client = new Client();
|
||||
server.CreateRoom(true);
|
||||
client.JoinYourself(server.MyIp.Port);
|
||||
AppManager.Instance.SetServer(server);
|
||||
AppManager.Instance.SetClient(client);
|
||||
server.CreateRoom(true);
|
||||
client.JoinYourself(server.MyIp.Port);
|
||||
string key = server.MyIp.ToString();
|
||||
AppManager.Instance.debugHud.Set(key, "MultiPlayer");
|
||||
// ваш код здесь
|
||||
|
|
|
@ -101,7 +101,7 @@ namespace ZoFo.GameCore.GameManagers
|
|||
protected override void Update(GameTime gameTime)
|
||||
{
|
||||
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");
|
||||
|
|
|
@ -18,6 +18,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
|||
{
|
||||
private int port = 0;
|
||||
private IPEndPoint endPoint;
|
||||
private IPEndPoint sendingEP;
|
||||
private Socket socket;
|
||||
List<UpdateData> updates = new List<UpdateData>();
|
||||
private List<Datagramm> waitingDatagramm = new List<Datagramm>();
|
||||
|
@ -26,21 +27,15 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
|||
public event OnDataSent GetDataSent; // event
|
||||
public bool IsConnected { get { return socket.Connected; } }
|
||||
public IPEndPoint InfoConnect => (IPEndPoint)socket.LocalEndPoint ?? endPoint;
|
||||
public EndPoint EndPointServer { get; set; }
|
||||
public ClientNetworkManager()
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
public bool SocketConnected()
|
||||
{
|
||||
return socket.Connected;
|
||||
}
|
||||
|
||||
public void Init() //create endPoint, socket
|
||||
{
|
||||
socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
|
||||
endPoint = new IPEndPoint(GetIp(), 0);
|
||||
endPoint = new IPEndPoint(GetIp(), 8081);
|
||||
socket.Bind(endPoint);
|
||||
Thread thread = new Thread(StartListening);
|
||||
thread.Start();
|
||||
|
@ -48,8 +43,10 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
|||
|
||||
public void SendData()
|
||||
{
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(updates)); //нужно сериализовать
|
||||
socket.Send(bytes);
|
||||
Datagramm Datagramm = new Datagramm();
|
||||
Datagramm.updateDatas = updates;
|
||||
byte[] bytes = Encoding.UTF8.GetBytes(JsonSerializer.Serialize(Datagramm)); //нужно сериализовать
|
||||
socket.SendTo(bytes, sendingEP);
|
||||
}
|
||||
|
||||
public void AddData(UpdateData UpdateData)
|
||||
|
@ -92,7 +89,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
|||
Datagramm Dgramm = new Datagramm() { DatagrammId = DatagrammId };
|
||||
string data = JsonSerializer.Serialize(Dgramm);
|
||||
byte[] buffer = Encoding.UTF8.GetBytes(data);
|
||||
socket.SendTo(buffer, EndPointServer);
|
||||
socket.SendTo(buffer, sendingEP);
|
||||
|
||||
}
|
||||
void CheckDatagramm()
|
||||
|
@ -124,19 +121,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
|||
/// <param name="port"></param>
|
||||
public void JoinRoom(string ip, int port) // multyplayer
|
||||
{
|
||||
|
||||
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);
|
||||
sendingEP = new IPEndPoint(IPAddress.Parse(ip), port);
|
||||
SendData();
|
||||
Thread listen = new Thread(StartListening);
|
||||
listen.IsBackground = true;
|
||||
|
@ -148,8 +133,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
|||
/// </summary>
|
||||
public void JoinYourself(int port) // single player
|
||||
{
|
||||
endPoint = new IPEndPoint(GetIp(), port);
|
||||
socket.Connect(endPoint);
|
||||
sendingEP = AppManager.Instance.server.MyIp;
|
||||
SendData();
|
||||
Thread listen = new Thread(StartListening);
|
||||
listen.IsBackground = true;
|
||||
|
@ -159,7 +143,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
|||
public static IPAddress GetIp()
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace ZoFo.GameCore.GameManagers.NetworkManager
|
|||
private bool isMultiplayer;
|
||||
//Player Id to Player endPoint
|
||||
private List<IPEndPoint> clientsEP;
|
||||
private IPEndPoint endPoint;
|
||||
public IPEndPoint endPoint;
|
||||
private List<UpdateData> commonUpdates;
|
||||
private List<UpdateData> importantUpdates;
|
||||
private List<Datagramm> sendedData;
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace ZoFo.GameCore
|
|||
{
|
||||
private ServerNetworkManager networkManager;
|
||||
private int ticks = 0;
|
||||
//public IPEndPoint MyIp { get { return networkManager.InfoConnect; } }
|
||||
public IPEndPoint MyIp { get { return networkManager.endPoint; } }
|
||||
public Server()
|
||||
{
|
||||
networkManager = new ServerNetworkManager();
|
||||
|
|
Loading…
Add table
Reference in a new issue