async void SetNetWorkAdapterEnabeldAsync() { await Task.Run(new Action(() => { try { if (!IsEnabledWifi) { System.Windows.Application.Current.Dispatcher.Invoke(new Action(() => { if (AccessPointList.Count > 0) { AccessPointList.Clear(); } })); } GetpotentialAdapter(); NetWorkAdapter.SetNetWorkAdapterEnabeld(CurrentWifiAdapter, IsEnabledWifi); CheckWifiIsEnabled(700); } catch (Exception ex) { } finally { IsRunning = false; } })); }
public override void init() { generateDifferColor();//use color to identify players uint PN = 0; Debug.Log("Entry to init method adapter.connectionClient=" + adapter.connectionClient.Count); //instance player foreach (int id in adapter.connectionClient.Keys) { Color tmpc; adapter.sendmessage(id, new byte[] { (byte)id }, msgType.SeverSideId); Debug.Log("clientId=" + id + " byteId=" + (byte)id); tmpc = availableColor.Dequeue(); byte[] colinfo = NetWorkAdapter.GetBytes(tmpc.r + "," + tmpc.g + "," + tmpc.b); adapter.sendmessage(id, colinfo, msgType.color); Vector3 spawnPOS = new Vector3(-synchronizationObj.Count + PN, 0); GameObject player = Instantiate(PlayePrefab, spawnPOS, gameObject.transform.rotation); player.name = "player" + id; player.GetComponent <SpriteRenderer>().color = tmpc; string which = adapter.connectionClient[id].Stext; string ip = which.Replace("::ffff:", ""); IpToObj.Add(ip, id); synchronizationObj.Add("player" + id, player); } }
/// <summary> /// 获取已启用的无线网卡 /// </summary> void GetCurrentEnabledAdapter() { if (CurrentWifiAdapter == null) { CurrentWifiAdapter = NetWorkAdapter.GetFirstEnabledWirelessAdapter(); } }
/// <summary> /// 获取潜在的无线网卡 /// </summary> void GetpotentialAdapter() { if (CurrentWifiAdapter == null) { CurrentWifiAdapter = NetWorkAdapter.GetFirstWirelessAdapter(); } }
static void Main(string[] args) { var list = NetWorkAdapter.GetAcceptableIPv4NetList(); //Console.ReadKey(); ConcurrentDictionary <Guid, MyNetworkInterface> NetworkInterfaces = WinLib.Network.MyNetworkInterface.GetAll(null); foreach (MyNetworkInterface nic in NetworkInterfaces.Values) { Console.WriteLine(nic.Name); for (int i = 0; i < nic.IPv4Address.Count; i++) { ConsoleStrs(new string[] { i == 0 ? "Address IP & Mask" : "", nic.IPv4Address[i].Address, nic.IPv4Address[i].Subnet }); } for (int i = 0; i < nic.IPv4Gateway.Count; i++) { ConsoleStrs(new string[] { i == 0 ? "Gateway IP & Metric" : "", nic.IPv4Gateway[i].Address, nic.IPv4Gateway[i].GatewayMetric.ToString() }); } for (int i = 0; i < nic.IPv4DnsServer.Count; i++) { ConsoleStrs(new string[] { i == 0 ? "DNS Server" : "", nic.IPv4DnsServer[i] }); } ConsoleStrs(new string[] { "DHCP Enabled", nic.DhcpEnabledString }); if (nic.DhcpServer != null && nic.DhcpServer != "255.255.255.255") { ConsoleStrs(new string[] { "DHCP Server", nic.DhcpServer }); } ConsoleStrs(new string[] { "NetBIOS over TCP/IP", nic.NetbiosEnabledString }); ConsoleStrs(new string[] { "MTU", nic.IPv4Mtu.ToString() }); } Console.ReadKey(); }
public void UPloadMeetAddressAndCancelLock(bool successed) { try { #region 获取会议地址并上传到服务器 //只有会话初始化完毕才有的结果 DispatcherTimer lynTimer = null; TimerJob.StartRun(new Action(() => { if (LyncHelper.MainConversation != null && LyncHelper.MainConversation.Conversation.Properties.ContainsKey(ConversationProperty.ConferenceAccessInformation)) { ConferenceAccessInformation conferenceAccessInformation = (ConferenceAccessInformation)LyncHelper.MainConversation.Conversation.Properties[ConversationProperty.ConferenceAccessInformation]; if (!string.IsNullOrEmpty(conferenceAccessInformation.InternalUrl)) { //开启会话 ModelManage.ConferenceLyncConversation.FillConversation(Constant.ConferenceName, conferenceAccessInformation.InternalUrl, new Action <bool>((issuccessed) => { if (successed) { #region 允许其他成员进行会议查询并进行初始化 ModelManage.ConferenceLyncConversation.AllowConversationInit(Constant.ConferenceName, new Action <bool>((flg) => { })); #endregion } })); #region 释放dns(改为自由获取),主窗体状态还原(非置顶) TimerJob.StartRun(new Action(() => { //设置DNS NetWorkAdapter.SetNetworkAdapter(Constant.RouteIp); //取消置顶 MainWindow.mainWindow.Topmost = false; })); #endregion lynTimer.Stop(); } } }), 500, out lynTimer); #endregion } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } }
private void MessageofColor(int outConnectionId, byte[] buffer) { float r, g, b; string[] s = NetWorkAdapter.splitString(buffer); r = float.Parse(s[0]); g = float.Parse(s[1]); b = float.Parse(s[2]); c = new Color(r, g, b); }
// Codeing shot action,id is the key of syncObj dictionary public void sendshotAction(byte bulletCategory, string id) { string info = id + "," + bulletCategory; string patten = @"play\w"; if (Regex.IsMatch(id, patten)) { print("shotAction " + info); } byte[] transfer = NetWorkAdapter.GetBytes(info); broadcast(transfer, msgType.shoot); }
public override void receiveDataHandel(int outConnectionId, byte[] buffer, int receivedSize, int MType) { if (MType == msgType.shoot) { string[] shotmsg = NetWorkAdapter.splitString(buffer);//element 0 position is key,1 is bulletCategory,client key was placed null parameter byte bullet = byte.Parse(shotmsg[1]); byte[] reaibleData = new byte[buffer.Length + 1]; Array.Copy(buffer, 0, reaibleData, 1, buffer.Length); reaibleData[0] = msgType.shoot; synchronizationObj[shotmsg[0]].GetComponent <BaseTank>().frie(bullet); } // operatingObj.frie(clientInfo.state[0]); }
private void Awake() { Environment.SetEnvironmentVariable("MONO_REFLECTION_SERIALIZER", "yes"); PlayePrefab = (GameObject)Resources.Load("prefab/玩家1", typeof(GameObject)); enemyPrefeb = new GameObject[3]; enemyPrefeb[0] = (GameObject)Resources.Load("prefab/multip/装甲车", typeof(GameObject)); enemyPrefeb[1] = (GameObject)Resources.Load("prefab/multip/中型坦克", typeof(GameObject)); enemyPrefeb[2] = (GameObject)Resources.Load("prefab/multip/重型坦克", typeof(GameObject)); adapter = GetComponent <NetWorkAdapter>(); isSever = adapter.isServer; maxAccpet = 10; controlData = new int[maxAccpet * 2]; adapter.Receiver += receiveDataHandel; }
private void MessageofColor(int outConnectionId, byte[] buffer) { float r, g, b; string[] s = NetWorkAdapter.splitString(buffer); r = float.Parse(s[0]); g = float.Parse(s[1]); b = float.Parse(s[2]); c = new Color(r, g, b, 255);//255 expression transparency //To set initial player position of player if (playerObject != null) { playerObject.GetComponent <SpriteRenderer>().color = c; } LocalPlayCoordinate = new Vector2(float.Parse(s[3]), float.Parse(s[4])); }
private void MessageofShot(byte[] buffer, int playerId) { string[] mg = NetWorkAdapter.splitString(buffer); string key = mg[0]; byte bulletcategory = byte.Parse(mg[1]); if (synchronizationObj.ContainsKey(key)) { BaseTank b = synchronizationObj[key].GetComponent <BaseTank>(); b.frie(bulletcategory); } else { Debug.LogError("KEY " + key + " not exist at sunchronization"); } }
/// <summary> /// 会话初始化 /// </summary> public void LyncConversationInit() { try { //检查当前会议是否包含会话 ModelManage.ConferenceLyncConversation.ContainConversation(Constant.ConferenceName, new Action <bool, string>((successed, meet_Address) => { ModelManage.ConferenceLyncConversation.CheckConversationInit(Constant.ConferenceName, new Action <bool>((canInit) => { ////检测是否可以会话初始化计时数量 //this.CheckConversationInitCount++; //if (this.CheckConversationInitCount == 8 && !string.IsNullOrEmpty(meet_Address)) //{ // //允许其他成员进行会议查询并进行初始化 // ModelManage.ConferenceLyncConversation.AllowConversationInit(Constant.ConferenceName, new Action<bool>((flg) => // { // })); //} if (canInit) { //设置DNS NetWorkAdapter.SetNetworkAdapter(Constant.DNS1); //设置置顶 MainWindow.mainWindow.Topmost = true; //创建或进入会话 this.MeetSetupOrEnter(successed, meet_Address); } else { TimerJob.StartRun(new Action(() => { this.LyncConversationInit(); }), 1200); } })); })); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } }
/// <summary> /// 当前应用程序关闭时,注销该用户 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void Current_Exit(object sender, ExitEventArgs e) { try { if (this.loginWindow != null) { this.loginWindow.Close(); } //设置DNS NetWorkAdapter.SetNetworkAdapter(Constant.RouteIp); //退出lync辅助 LyncHelper.LyncSignOut(new Action(() => { if (LyncHelper.MainConversation != null) { ModelManage.ConferenceLyncConversation.RemoveConversation(Constant.ConferenceName, new Action <bool>((successed) => { })); //设置DNS //NetWorkAdapter.EnableDHCP2(); //Conference.View.Tree.ConferenceTreeView.TittleEditControlTimer.Stop(); //Conference.View.IMM.ConferenceAudio_View.TittleEditControlTimer.Stop(); //LyncClient.GetAutomation().EndMeetNow(null); LyncHelper.MainConversation.Close(); } })); //系统关闭辅助 Current_Exit_Help(); } catch (Exception ex) { LogManage.WriteLog(typeof(App), ex); } finally { //关闭指定后台进程 ProcessManage.KillProcess("Lync"); //lync临时显示 WindowHide.SetTrayIconAllDsiplay("Lync"); //消除死亡托盘图标 SysTray.Refresh(); } }
/// <summary> /// 获取会议地址上传到服务器(解除锁定) /// </summary> /// <param name="successed">是否上传成功</param> public void UPloadMeetAddressAndCancelLock(bool successed) { try { //只有会话初始化完毕才有的结果 DispatcherTimer lynTimer = null; TimerJob.StartRun(new Action(() => { string address = LyncHelper.GetConversation_Address(); if (!string.IsNullOrEmpty(address)) { lynTimer.Stop(); //开启会话 ModelManage.ConferenceLyncConversation.FillConversation(Constant.ConferenceName, address, new Action <bool>((issuccessed) => { if (successed) { //允许其他成员进行会议查询并进行初始化 ModelManage.ConferenceLyncConversation.AllowConversationInit(Constant.ConferenceName, new Action <bool>((flg) => { })); } })); //释放dns(改为自由获取),主窗体状态还原(非置顶) TimerJob.StartRun(new Action(() => { //设置DNS NetWorkAdapter.SetNetworkAdapter(Constant.RouteIp); //取消置顶 MainWindow.mainWindow.Topmost = false; })); } }), 500, out lynTimer); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } }
private void Awake() { Environment.SetEnvironmentVariable("MONO_REFLECTION_SERIALIZER", "yes"); PlayePrefab = (GameObject)Resources.Load("prefab/玩家1", typeof(GameObject)); enemyPrefeb = new GameObject[3]; enemyPrefeb[0] = (GameObject)Resources.Load("prefab/multip/装甲车", typeof(GameObject)); enemyPrefeb[1] = (GameObject)Resources.Load("prefab/multip/中型坦克", typeof(GameObject)); enemyPrefeb[2] = (GameObject)Resources.Load("prefab/multip/重型坦克", typeof(GameObject)); adapter = gameObject.GetComponent <NetWorkAdapter>(); // isSever = adapter.isServer; maxAccpet = 10; controlData = new int[maxAccpet * 2]; adapter.Receiver += receiveDataHandel; if (gameObject.GetComponent <IUIHandler>() != null)//avoid addcomponent repeatedly { return; } inData = gameObject.AddComponent <IUIHandler>(); inData.receiveData += processMessage;//this delegate for deal with incoming UDP data gameObject.AddComponent <NetworkHandler>(); gameObject.AddComponent <MainThreadProcessor>(); }
/// <summary> /// 是否包含会议 /// </summary> /// <param name="hasConference"></param> void HasConferenceEvent(Action <bool> hasConference) { try { if (!string.IsNullOrEmpty(Constant.ConferenceName)) { hasConference(true); } else { hasConference(false); } //设置DNS NetWorkAdapter.SetNetworkAdapter(Constant.RouteIp); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } }
public void OnData(int outHostId, int outConnectionId, int outChannelId, byte[] buffer, int receivedSize, NetworkError error) { Debug.Log("Entry OnData"); if (isHead) { isHead = false; string[] s = NetWorkAdapter.splitString(buffer); Debug.Log("Entry isHead info=" + NetWorkAdapter.GetString(buffer) + " bufferLength=" + this.buffer); this.buffer = new byte[int.Parse(s[1])]; receiveMsgType = int.Parse(s[0]); adapter.connectionClient[outConnectionId].setMessageType(receiveMsgType); Debug.Log("connectionClient[outConnectionId].receiveMsgType=" + receiveMsgType + "isHead=" + isHead); return; } Debug.Log("Entry Receiver"); isHead = true; if (receiveMsgType == msgType.testMessage) { Debug.Log("Receive test message=" + NetWorkAdapter.GetString(buffer)); this.buffer = new byte[100]; return; } receiveDataHandel(outConnectionId, buffer, receivedSize, receiveMsgType); }
private void MessageofSeverSideId(int outConnectionId, byte[] buffer) { print("parse string= " + NetWorkAdapter.splitString(buffer)[0]); id = int.Parse(NetWorkAdapter.splitString(buffer)[0]); SceneManager.LoadScene("scene2"); }
/// <summary> /// 环境配置2(获取会议信息,持久层信息绑定【config】) /// </summary> public void LoginEnviromentInit3() { try { if (DetectionManage.TestNetConnectity(Constant.TreeServiceIP)) { //验证是否能够访问LYNC扩展web服务(研讨服务) if (DetectionManage.IsWebServiceAvaiable(Constant.TreeServiceAddressFront + Constant.ConferenceTreeServiceWebName)) { if (CheckLoginInitCompleatetimer != null) { this.CheckLoginInitCompleatetimer.Stop(); this.CheckLoginInitCompleatetimer = null; } //获取客户端配置信息 ModelManage.ConferenceInfo.GetClientAppConfig(new Action <bool, ConferenceModel.ConferenceInfoWebService.ClientConfigEntity>((successed, result) => { if (successed) { #region 配置本地环境 //客户端配置信息加载 this.AppconfigSetting(result); //客户端配置信息加载2 this.AppconfigSetting_Part(result); #region old solution ////防火墙规则添加(研讨客户端) //FireManage.OpenFireWall(Constant.FireName_Conference, Constant.ApplicationFullName); ////防火墙规则添加(版本更新) //FireManage.OpenFireWall(Constant.FireName_ConferenceUpdate, Constant.ConferenceVersionUpdateExe); ////验证并安装lync相关证书 //CertificationManage.SetUpCertification(Constant.CertificationSerial, Constant.Certification); //检测并开启rpc本地服务 //LocalServiceManage.CheckRunRpcService(); //设置证书(不检查发行商的证书是否吊销,不检查服务器证书吊销) //RegeditManage.SetNoCheckCertificationIsRevoke(); //指定webbrowser版本(9.0) //RegeditManage.SetWebBrowserVersion(Constant.ApplicationSingleName); #endregion //设置DNS NetWorkAdapter.SetNetworkAdapter(Constant.DNS1); //确保PainFramework.dll存在系统目录 FileManage.CheckDebugHasTheFile(Constant.PaintFileName, Constant.FileRoot); #endregion //获取信息成功 GetClientAppConfigSuccessedDealWidth(); } })); } } else { //获取信息失败 GetClientAppConfigFailedDealWidth(); } } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } }
private void OnData(int outHostId, int outConnectionId, int outChannelId, ref byte[] buffer, int receivedSize, NetworkError error) { Debug.Log("Entry OnData receive size=" + buffer.Length + "receivedSize" + receivedSize); if (isHaed) { byte[] reallyBytes = new byte[receivedSize]; Array.Copy(buffer, 0, reallyBytes, 0, receivedSize); Debug.Log("!= HEAD?" + GetString(reallyBytes) + "!= HEAD?"); string[] s = splitString(reallyBytes); // Debug.Log("s[2]=" + s[2] +"!= HEAD?"); // if (s[2] != "HEAD") // return; isHaed = false; GetSize = int.Parse(s[1]); this.buffer = new byte[GetSize]; // if (GetSize>1024) // tmpReceive = new byte[(GetSize / 1024) + 1][]; //connectionClient[outConnectionId].setHead(false); receiveMsgType = int.Parse(s[0]); Debug.Log("receiveMsgType" + receiveMsgType); // connectionClient[outConnectionId].setMessageType(receiveMsgType); Debug.Log("GetSize=" + GetSize); return; } Debug.Log("Entry Receiver"); if (receiveMsgType == msgType.testMessage) { Debug.Log("Receive test message=" + NetWorkAdapter.GetString(buffer)); isHaed = true; return; } /* * if (conuter< (GetSize / 1024)+1&&GetSize>1024) * { * * tmpReceive[conuter] = buffer; * conuter++; * if(conuter== (GetSize / 1024) + 1) * { * isHaed = true; * conuter = 0; * byte[] wholeMessage = combineBytes(tmpReceive, GetSize); * if (receiveMsgType == msgType.testMessage) * { * Debug.Log("Receive test message=" + NetWorkAdapter.GetString(wholeMessage)); * return; * } * Receiver(outConnectionId, wholeMessage, receivedSize, receiveMsgType); * * } * return; * // GetSize -= conuter * 1024; * } * * if (receiveMsgType == msgType.testMessage) * { * Debug.Log("Receive test message=" + NetWorkAdapter.GetString(buffer)); * isHaed = true; * return; * } */ Receiver(outConnectionId, buffer, receivedSize, receiveMsgType); isHaed = true; buffer = new byte[50]; }
/// <summary> /// 会话初始化 /// </summary> public void LyncConversationInit() { try { //检查当前会议是否包含会话 ModelManage.ConferenceLyncConversation.ContainConversation(Constant.ConferenceName, new Action <bool, string>((successed, meetAddress) => { ModelManage.ConferenceLyncConversation.CheckConversationInit(Constant.ConferenceName, new Action <bool>((canInit) => { this.CheckConversationInitCount++; if (this.CheckConversationInitCount == 8 && !string.IsNullOrEmpty(meetAddress)) { #region 允许其他成员进行会议查询并进行初始化 ModelManage.ConferenceLyncConversation.AllowConversationInit(Constant.ConferenceName, new Action <bool>((flg) => { })); #endregion } if (canInit) { //设置DNS NetWorkAdapter.SetNetworkAdapter(Constant.DNS1); //设置置顶 MainWindow.mainWindow.Topmost = true; #region 会话配置 if (successed && string.IsNullOrEmpty(meetAddress)) { #region 禁止其他人进行查询完之后直接进行会话初始化(有可能在其中过程当中,第一个开启会话的人还没有准备完毕,所以记进行一次通知) ModelManage.ConferenceLyncConversation.ForbiddenConversationInit(Constant.ConferenceName, new Action <bool>((flg) => { })); #endregion //判断主会话是否存在 if (LyncHelper.MainConversation == null) { //参会人列表 List <string> list = Constant.ParticipantList.Where(Item => Item.Equals(Constant.SelfUri)).ToList <string>(); //添加对应大屏 list.Add(Constant.BigScreenName); //开启会话 LyncHelper.StartConference(Constant.lyncClient, Constant.ConferenceName, Constant.SelfName, list, LyncHelper.MainConversation); //获取会议地址上传到服务器 this.UPloadMeetAddressAndCancelLock(successed); } } else { //使用浏览器的方式参会 this.JoinConversationByWebBrowser(meetAddress); } #endregion } else { TimerJob.StartRun(new Action(() => { this.LyncConversationInit(); }), 1200); } })); })); } catch (Exception ex) { LogManage.WriteLog(this.GetType(), ex); } finally { } }