void SendBroadcast(int beginPort, int endPort, RPCMessage msg) { byte[] buffer = PBSerializer.Serialize(msg); for (int i = beginPort; i < endPort; i++) { m_Socket.SendTo(buffer, buffer.Length, new IPEndPoint(IPAddress.Broadcast, i)); } }
private void sendMsg(long peerId, IExtensible msg) { var frame = PBSerializer.Serialize(msg); var builder = new ByteBuilder(); builder.Add(frame.Length, Endians.Little); builder.Add(frame); svr.SendBytes(peerId, builder.ToArrayThenClear()); }
public void Send(IExtensible msg) { Debug.Assert(peerId != 0); var frame = PBSerializer.Serialize(msg); var builder = new ByteBuilder(); builder.Add(frame.Length, Endians.Little); builder.Add(frame); cli.SendBytes(peerId, builder.ToArrayThenClear()); }
//================================逻辑============================= public void JoinRoom(string ip, int port) { m_roomAddress = IPUtils.GetHostEndPoint(ip, port); PlayerData player = new PlayerData(); player.userID = m_mainUserId; player.userName = m_mainUserName; byte[] customPlayerData = PBSerializer.Serialize(player); RPC(m_roomAddress, RoomRPC.RPC_JoinRoom, m_mainUserId, m_mainUserName, customPlayerData); }
public bool Send(FSPFrame frame) { if (m_Socket != null) { FSPData_SC data = new FSPData_SC(); data.frames.Add(frame); int len = PBSerializer.Serialize(data, m_SendBuffer); return(m_Socket.SendTo(m_SendBuffer, len, m_EndPoint)); } return(false); }
void Call_UpdateRoomInfo() { var players = m_data.players; for (int i = 0; i < players.Count; ++i) { Debuger.Log(LOG_TAG, "Call_UpdateRoomInfo() Player: {0}-{1}", players[i].userId, players[i].name); } byte[] param = PBSerializer.Serialize(m_data); RPC(GetAllAddress(), RoomRPC.RPC_UpdateRoomInfo, param); }
void SendMessage(List <IPEndPoint> remoteList, RPCMessage msg) { byte[] buffer = PBSerializer.Serialize(msg); for (int i = 0; i < remoteList.Count; i++) { IPEndPoint remote = remoteList[i]; if (remote != null) { m_Socket.SendTo(buffer, buffer.Length, remote); } } }
public bool SendFSP(int vkey, int arg, int clientFrameId) { if (m_IsRunning) { FSPVKey cmd = m_TempSendData.vkeys[0]; cmd.vkey = vkey; cmd.args.Add(arg); cmd.clientFrameId = (uint)clientFrameId; int len = PBSerializer.Serialize(m_TempSendData, m_TempSendBuf); return(m_Socket.SendTo(m_TempSendBuf, len, m_HostEndPoint)); } return(false); }
void Call_NotifyGameStart() { Debuger.Log(LOG_TAG, "Call_NotifyGameStart()"); var players = m_data.players; FSPGameStartParam param = new FSPGameStartParam(); param.fspParam = FSPServer.Instance.GetParam(); foreach (var player in players) { param.players.Add(player); } param.customGameParam = m_customGameParam; FSPServer.Instance.StartGame(); FSPServer.Instance.Game.onPlayerExit += _OnPlayerExit; FSPServer.Instance.Game.onGameEnd += _OnGameEnd; for (int i = 0; i < players.Count; i++) { var player = players[i]; param.fspParam.sid = player.sid; //将玩家加入到FSPServer中 FSPServer.Instance.Game.AddPlayer(player.id, player.sid); if (m_mapUserId2Address.ContainsKey(player.userId)) { IPEndPoint address = m_mapUserId2Address[player.userId]; byte[] buff = PBSerializer.Serialize(param); RPC(address, RoomRPC.RPC_NotifyGameStart, buff); } else { Debuger.LogError(LOG_TAG, "User {0} does not have net address", player.userId); } } }
public void StartHost() { if (!HasHost()) { FSPServer.Instance.Start(0); FSPServer.Instance.SetServerTimeout(0); //将自定义游戏参数传给房间 //以便于由房间通知玩家游戏开始时,能够将该参数转发给所有玩家 byte[] customGameParam = PBSerializer.Serialize(new GamePlay.GameParam()); FSPServer.Instance.Room.SetCustomGameParam(customGameParam); Debuger.Log("HostModule", string.Format("start host: {0}-{1}", ip, port)); EventManager.Instance.SendEvent <string, int>("OnStartHost", ip, port); EventManager.Instance.SendEvent("OnHostChanged"); } else { Debuger.Log("HostModule", "The host is alreay started"); } }
static FSPParam CloneParam(FSPParam param) { byte[] bytes = PBSerializer.Serialize(param); return PBSerializer.Deserialize<FSPParam>(bytes); }
//===================================================================== #region 消息发送 void SendMessage(IPEndPoint remote, RPCMessage msg) { byte[] buffer = PBSerializer.Serialize(msg); m_Socket.SendTo(buffer, buffer.Length, remote); }