C# UDP通信示例
大家好,这是我最近写了一个Udp通信的小程序,发表出来和大家共同学习,我希望和大家共同进步。 upd通信接受端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
using System; using System.Net; using System.Net.Sockets; namespace Zhty.Socket.UDPSocket { public class UDP_Client { #region 属性 private IPAddress _ClientAddress = IPAddress.Any; private int _ClientPort = 0; private byte[] _data = new byte[] { }; public IPEndPoint Client { get { return new IPEndPoint(_ClientAddress, _ClientPort); } set { _ClientAddress = value.Address; _ClientPort = value.Port; } } public IPAddress ClientAddress { get { return _ClientAddress; } set { _ClientAddress = value; } } public int ClientPort { get { return _ClientPort; } set { _ClientPort = value; } } #endregion #region 方法 public void SendMessage(byte[] message) { // Encode message per settings // Send the message _data = message; try { SendUDPMessage(_data); } catch (Exception ex) { throw ex; } } private int SendUDPMessage(Byte[] _data) { //' Create a UDP Server and send the message, then clean up UdpClient _UDPServer = null; int ReturnCode; try { _UDPServer = new UdpClient(); ReturnCode = 0; _UDPServer.Connect(Client); ReturnCode = _UDPServer.Send(_data, _data.Length); } catch (Exception ex) { throw ex; } finally { if (_UDPServer != null) { _UDPServer.Close(); } } return ReturnCode; } #endregion } } |
udp通信的发送端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Net.Sockets; using System.Net; namespace Zhty.Socket.UDPSocket { public class UDP_Server { private Thread _ThreadReceive; private int _ClientPort = 0; private string _Message = null; private UdpClient _UDPClient; private IPEndPoint _Server = new IPEndPoint(IPAddress.Any, 0); private int _BytesReceived = 0; #region 事件定义 public delegate void OnReceivedDataHandler(object sender, DataReceivedEventArgs e); public event OnReceivedDataHandler OnRecivedData; public delegate void OnStateChangedHandler(object sender, ServerStateChangeEventArgs e); public event OnStateChangedHandler OnStateChanged; #endregion #region 属性 int _bufferSize = 1024; public int BufferSize { get { return _bufferSize; } set { _bufferSize = value; } } public int BytesReceived { get { return _BytesReceived; } } public string Message { get { return _Message; } } public int ClientPort { get { return _ClientPort; } set { _ClientPort = value; } } #endregion #region 方法 void DataReceiveProc() { //BeforeReceive(this,new EventArgs()); _Message = ""; byte[] data = new byte[BufferSize]; try { data = _UDPClient.Receive(ref _Server); if (OnRecivedData != null) OnRecivedData(this, new DataReceivedEventArgs(data)); Thread.Sleep(100); } catch (Exception ex) { if (OnStateChanged != null) OnStateChanged(this, new ServerStateChangeEventArgs(false)); throw ex; } finally { InitializeThread(); } } private void InitializeClient() { if (_UDPClient == null) { this._UDPClient = new UdpClient(ClientPort); } } private void InitializeThread() { try { _ThreadReceive = new Thread(new ThreadStart(DataReceiveProc)); _ThreadReceive.Start(); } catch (Exception ex) { throw ex; } } public void Start() { InitializeClient(); InitializeThread(); } #endregion public void Stop() { try { _ThreadReceive.Abort(); if (_UDPClient != null) { // ' Close the UDPClient and then force it to Nothing _UDPClient.Close(); _UDPClient = null; } } catch (Exception ex) { throw ex; } } #region 析构方法 ~UDP_Server() { Stop(); } #endregion } } |
辅助类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
using System; using System.Collections.Generic; using System.Text; namespace Zhty.Socket.UDPSocket { public class DataReceivedEventArgs : EventArgs { public DataReceivedEventArgs(byte[] data) { Data = data; } byte[] m_Data; public byte[] Data { get { return m_Data; } set { m_Data = value; } } } public class ServerStateChangeEventArgs : EventArgs { public ServerStateChangeEventArgs(bool state) { Running = state; } bool m_Running; public bool Running { get { return m_Running; } set { m_Running = value; } } } } |
转自:http://www.cnblogs.com/zhaotianyu001/articles/549259.html
View DetailsC#UDP通信 | C#UDP广播
Internet协议族中有支持无连接的传输协议,即UDP协议。UDP协议提供了一种方法来发送经过封装的IP数据报,而且不必建立连接就 可以发送这些IP数据报。 服务器端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; namespace UDPServer { class Program { static void Main(string[] args) { int recv; byte[] data = new byte[1024]; //构建TCP 服务器 //得到本机IP,设置TCP端口号 IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 8001); Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //绑定网络地址 newsock.Bind(ipep); Console.WriteLine("This is a Server, host name is {0}", Dns.GetHostName()); //等待客户机连接 Console.WriteLine("Waiting for a client"); //得到客户机IP IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint Remote = (EndPoint)(sender); recv = newsock.ReceiveFrom(data, ref Remote); Console.WriteLine("Message received from {0}: ", Remote.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); //客户机连接成功后,发送欢迎信息 string welcome = "Welcome ! "; //字符串与字节数组相互转换 data = Encoding.ASCII.GetBytes(welcome); //发送信息 newsock.SendTo(data, data.Length, SocketFlags.None, Remote); while (true) { data = new byte[1024]; //发送接受信息 recv = newsock.ReceiveFrom(data, ref Remote); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); newsock.SendTo(data, recv, SocketFlags.None, Remote); } } } } |
客户端:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.Sockets; namespace UDPClient { class Program { static void Main(string[] args) { byte[] data = new byte[1024]; string input, stringData; //构建TCP 服务器 Console.WriteLine("This is a Client, host name is {0}", Dns.GetHostName()); //设置服务IP,设置TCP端口号 IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8001); //定义网络类型,数据连接类型和网络协议UDP Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); string welcome = "Hello! "; data = Encoding.ASCII.GetBytes(welcome); server.SendTo(data, data.Length, SocketFlags.None, ipep); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint Remote = (EndPoint)sender; data = new byte[1024]; //对于不存在的IP地址,加入此行代码后,可以在指定时间内解除阻塞模式限制 //server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 100); int recv = server.ReceiveFrom(data, ref Remote); Console.WriteLine("Message received from {0}: ", Remote.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); while (true) { input = Console.ReadLine(); if (input == "exit") break; server.SendTo(Encoding.ASCII.GetBytes(input), Remote); data = new byte[1024]; recv = server.ReceiveFrom(data, ref Remote); stringData = Encoding.ASCII.GetString(data, 0, recv); Console.WriteLine(stringData); } Console.WriteLine("Stopping Client."); server.Close(); } } } |
MSDN 实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
// This constructor arbitrarily assigns the local port number. UdpClient udpClient = new UdpClient(11000); try{ udpClient.Connect("www.contoso.com ", 11000); // Sends a message to the host to which you have connected. Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?"); udpClient.Send(sendBytes, sendBytes.Length); // Sends a message to a different host using optional hostname and port parameters. UdpClient udpClientB = new UdpClient(); udpClientB.Send(sendBytes, sendBytes.Length, "AlternateHostMachineName", 11000); //IPEndPoint object will allow us to read datagrams sent from any source. IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0); // Blocks until a message returns on this socket from a remote host. Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint); string returnData = Encoding.ASCII.GetString(receiveBytes); // Uses the IPEndPoint object to determine which of these two hosts responded. Console.WriteLine("This is the message you received " + returnData.ToString()); Console.WriteLine("This message was sent from " + RemoteIpEndPoint.Address.ToString() + " on their port number " + RemoteIpEndPoint.Port.ToString()); udpClient.Close(); udpClientB.Close(); } catch (Exception e ) { Console.WriteLine(e.ToString()); } |
Microsoft Visual Studio 2005/.NET Framework 2.0 同时提供下列产品的其他版本: •.NET Framework 3.0 •Microsoft Visual Studio 2008/.NET Framework 3.5 .NET Framework 类库UdpClient 成员 提供用户数据报 (UDP) 网络服务。 下表列出了由 UdpClient 类型公开的成员。 公共构造函数 名称 说明 UdpClient 已重载。初始化 UdpClient 类的新实例。 公共属性 (请参见 受保护的属性 ) 名称 说明 Available 获取从网络接收的可读取的数据量。 Client 获取或设置基础网络 Socket。 DontFragment 获取或设置 Boolean 值,指定 UdpClient 是否允许对 Internet 协议 (IP) 数据报进行分段。 EnableBroadcast 获取或设置 Boolean 值,指定 UdpClient 是否可以发送或接收广播数据包。 ExclusiveAddressUse 获取或设置 Boolean 值,指定 UdpClient 是否只允许一个客户端使用端口。 MulticastLoopback 获取或设置 Boolean 值,指定是否将输出多路广播数据包传递给发送应用程序。 Ttl 获取或设置一个值,指定由 UdpClient 发送的 Internet […]
View Details使IE6下PNG背景透明的七种方法任你选
PNG图像格式介绍: PNG是20世纪90年代中期开始开发的图像文件存储格式,其目的是企图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。流式 网络图形格式(Portable Network Graphic Format,PNG)名称来源于非官方的“PNG’s Not GIF”,是一种位图文件(bitmap file)存储格式,读成“ping”。PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可 存储多到16位的α通道数据。 IE6下PNG背景透明的显示问题 PNG格式比起GIF来表现色彩更丰富,特别是表现渐变以及背景透明的渐变要比GIF格式出色很多,目前,最新的浏览器基本上都支持PNG格式。但是IE6不支持PNG背景透明,会显示一个灰色的框。 IE6下PNG背景透明的解决办法 .pngImg { background:url(image.png); _background:url(image.gif);} 注意上文的_号,目前IE7,8以及Firefox浏览器等都不支持此CSS语法,只有IE6识别。因此,其他浏览器会调用PNG,而IE6刚调用GIF。 二.滤镜filter解决IE6下背景灰 background:url(a.png) repeat-x 0 0; _background:none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="a.png" ,sizingMethod="crop"); 上面的原理是其他调用PNG,IE6,则先设背景没有,然后调用滤镜使之显示PNG图片。 缺陷:IE6下背景无法平铺,这个问题很严重。同时在性能上也有小问题,页面中次数不是很多的时候该办法还是可行的。 AlphaImageLoader滤镜会导致该区域的链接和按钮无效,解决的办法是为链接或按钮添加:position: relative;这样条代码,使其相对浮动。AlphaImageLoader无法设置背景的重复,所以对图片的切图精度会有很高的精确度要求。 解决IE下的链接无效可用最后面的方法: 三.利用JS解决html中的img(插入在网页中的png图像)png背景灰问题 页面中插入一段js即可。原理同上,只是将img标签用<span>标签替换掉,并且通过滤镜设置该<span>标签的background。它会将所有插入的PNG都如此处理。<!--[if IE 6]> <script>function correctPNG() {for(var i=0; i<document.images.length; i++){var img = document.images[i];var imgName = img.src.toUpperCase();if (imgName.substring(imgName.length-3, imgName.length) == "PNG"){var imgID = (img.id) ? "id=’" + img.id + "' " : "";var imgClass = (img.className) ? "class=’" + img.className + "' " : "";var imgTitle = (img.title) ? "title=’" + img.title + "' " : "title=’" + […]
View Detailscss实现强制不换行/自动换行/强制换行
强制不换行 div{white-space:nowrap;} 自动换行 div{ word-wrap: break-word; word-break: normal; } 强制英文单词断行 div{word-break:break-all;}
View DetailsC:\WINDOWS\Installer 刪除解決
1.C:\WINDOWS\$hf_mig$ 文件夹下是升级、安装补丁的备份存档文件,删了也没什么大碍,不过如果你想还原到安装补丁以前的状态就不要删(通常没人会还原到安装补丁以前)。 2.C:\WINDOWS\SoftwareDistribution\Download中也是更新的文件,也可以删除。 3.C:\WINDOWS\Installer 是用来存放MSI文件或者程序安装所需要的临时文件,所有基于 Windows Installer 安装的应用软件,其注册信息和有关的组件都保存在这里,不要轻易删除 Windows\Installer 文件夹中的任何数据,否则可能导致全盘大乱。比如Office 就属于这种基于 Windows Installer 安装的软件。如果删除了 Windows\Installer 中的数据,Office 从表面上会表现为正常运行但找不到图标,实质上会表现为多数功能组件都无法正常使用,甚至在“添加删除程序”中试图删除 Office,都会出现未知错误。到时候就会变成乱糟糟的一个乱摊子,想用用不了、想删删不了,欲哭无泪。其它的 Windows Installer 软件还有Altova XMLSpy、Microsoft Visual Studio、Windows Live Messenger(MSN)、Adobe CS套件、金山词霸等以Office为例,当你删除了这个文件夹 中的内容后,Office的安装程序将无法使用,无论是重新安装,修复、添加和删除Office组件,都无法运行,此时你必须手动删除Office,然后 再重新安装。打开注册表定位到HKEY_CLASSES_ROOT\Insaller\products,在这里找到Office的卸载信息,将对应注册表项删除,然后手动 删除Office文件夹,再重新运行Office的安装程序,方可正常运行,其余所有基于Windows Installer的软件都要如此处理。你到别人相同的系统中去复制这个文件基本是不可行的,因为每个人安装的软件怎么可能完全一样呢?
View Detailsphp字符串处理函数
addcslashes —— 为字符串里面的部分字符添加反斜线转义字符 addslashes —— 用指定的方式对字符串里面的字符进行转义 bin2hex —— 将二进制数据转换成十六进制表示 chr —— 返回一个字符的ASCII码 chunk_split —— 按一定的字符长度将字符串分割成小块 convert_cyr_string —— 将斯拉夫语字符转换为别的字符 convert_uudecode —— 解密一个字符串 convert_uuencode —— 加密一个字符串 count_chars —— 返回一个字符串里面的字符使用信息 crc32 —— 计算一个字符串的crc32多项式 crypt —— 单向散列加密函数 explode —— 将一个字符串用分割符转变为一数组形式 fprintf —— 按照要求对数据进行返回,并直接写入文档流 get_html_translation_table —— 返回可以转换的HTML实体 html_entity_decode —— htmlentities ()函数的反函数,将HTML实体转换为字符 htmlentities —— 将字符串中一些字符转换为HTML实体 htmlspecialchars_decode —— htmlspecialchars()函数的反函数,将HTML实体转换为字符 htmlspecialchars —— 将字符串中一些字符转换为HTML实体 implode —— 将数组用特定的分割符转变为字符串 join —— 将数组转变为字符串,implode()函数的别名 levenshtein —— 计算两个词的差别大小 localeconv —— 获取数字相关的格式定义 ltrim —— 去除字符串左侧的空白或者指定的字符 md5_file —— 将一个文件进行MD5算法加密 md5 —— 将一个字符串进行MD5算法加密 metaphone —— 判断一个字符串的发音规则 money_format —— 按照参数对数字进行格式化的输出 nl_langinfo —— 查询语言和本地信息 nl2br —— 将字符串中的换行符“\n”替换成“” […]
View Details在winform中嵌入 flash
很多光盘上的程序,比如电脑迷光盘,开头总有一段动画,用来展现企业品牌和LOGO之用。这个动画是Flash做的,而且嵌入到程序中简直做到无缝融合,因为右键点击它也不会有那特有而烦人的Flash右键菜单。 因此将Flash融合到WinForm中能够增强程序的多媒体效果和炫丽的外观。现在我们就来看看在C#桌面程序中如何插入Flash视频,而且去掉烦人的右键菜单。 首先要插入Flash就必须使用Flash控件,在工具栏右键选择“选择项…”,然后在“COM组件”面板下点击“浏览”按钮,在本机电脑C:\WINDOWS\system32\Macromed\Flash\目录里选择Flash8.ocx(也有可能是Flash9F.ocx,版本不同所致),然后点击确定就可以了。但到这里还没有完,因为要使用Flash控件必须注册它。 在CMD里面输入如下: regsvr32 C:\WINDOWS\system32\Macromed\Flash\Flash8.ocx 系统会提示注册成功,这个时侯就可以在VS2008里面使用该控件了! 打开VS2008,新建一个Windows程序,然后把刚才我们选择的Flash控件Shockwave Flash Object拖到窗体中,这时窗体中会出现一个白色的矩形框,Name属性我们设置为Myflash,在里面可以播放我们需要的swf文件。 注意到该控件主要有几个属性: Name属性,这个是所有对象都会有的。 Menu属性,这个是Flash菜单项,默认值为true,也就是右键的时候会出现完整的Flash菜单,如果设置为False,则只出现最简的菜单(设置与关于)。 Move属性,这个属性是用来指定要播放的Flash文件的。 Playing属性,指定是否装在影片之后马上播放。 Quality属性,设置影片的质量。 Scalemode属性,设置影片的缩放模式。 Visible属性,设置影片控件的可视与否。 接下来我们在窗体中放置一个按钮,Text属性设置为LoadSwf。双击添加事件代码如下: OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Flash文件|*.swf"; DialogResult dr = ofd.ShowDialog(); if (dr == DialogResult.OK) { Myflash.Movie = ofd.FileName; Myflash.Play(); } 这样当程序运行的时候点击按钮会要我们选择一个SWF文件,选择好后确定就自动播放了! 当然,我们还可以添加一些按钮,分别为Play,Pause Play按钮的播放功能如下: This.Myflash.Play(); Pause按钮的暂停功能如下: This.Myflash.StopPlay(); 这里就不再啰嗦了,各位园友可以自行去研究一些常用的功能。下面我们主要来讲解如何消去烦人的Flash右键菜单! 消去Flash右键菜单有两种方法(本人愚笨,到目前只发现这两种): 方法一: 这个方法比较复杂,也比较繁琐,主要是用到API函数的调用。代码如下: #region 去掉Flash右键菜单,API函数的声明 private const int GWL_WNDPROC = -4; public delegate IntPtr FlaWndProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); private IntPtr OldWndProc = IntPtr.Zero; private […]
View Details红色警戒2共和国之辉游戏介绍
应为红色警戒2共和国之辉,为国内玩家对westwood出品的著名游戏Red Alert2的一个修改版。最大的特点是添加了中国。《红色警戒2共和国之辉》是即时战略游戏《红色警戒2》的一款较早期的MOD。《命令与征服:红色警戒2》是Westwood公司1996年出品的即时战略游戏派生产品的一款续集。然而,必须强调指出《共和国之辉》只是国内某个人玩家或者说MOD爱好者的一款修改之作,并非Westwood公司出的官方资料片。 操作指南: 红色警戒2 共和国之辉操作: 左手与+右手,请你动起来:快捷键键盘操作.E_dragon 很多玩家刚上平台与别人联网对战时,总感觉别人无论是造建筑还是造部队,都比自己快,就那么一点点,结果一局积累下来,差距就很大了, 红警有许多快捷键,比如Q,W,E,R,把左手除了大拇指,其余四指放在这四个键上,就可以在普通建筑栏/特殊建筑栏/兵栏/装甲部队栏这4个栏之间快速切换,“under attack”或是“Unit lost”时,按一下space就可以转换到事发地点,等等。举个简单而常见的实战例子:运兵车载辐射兵对付幻影光棱海时,晚展开0.几秒,不仅辐射兵就被幻影光能坦克打死,连犀牛坦克群都跑不了了。 战局争分夺秒,建议大家让双手动起来,当你习惯了键盘+鼠标操作时,就会惊喜地发现你的速度快了很多,而且是个象模象样的高手了。 下面以左手键盘右手鼠标习惯为例,介绍许多高手使用快捷键和键盘操作的心得。 1.展开基地:游戏登陆时,先准备,左手食指放在N键,无名指放在D键上;进入游戏,连续按N/D,展开基地,点电场。 2.(22时,增加这一步)点电场后,左手小指快速按tab,瞄一下颜色,mouseleft点选结盟;小指按ESC退出;左手食指按B,mouseleft,信标提示盟友自己位置。 3.做建筑时,鼠标要停在你建筑要放的地方,小指放在Q/W键上,调整建筑目标摆房处与建筑栏的位置为min。电场好,小指按Q/W键,迅速点放。 4.造兵时,左手无名指按E,鼠标点。 5.造狗时,指挥从各个方向探图。指挥狗探图时,可以先点大概方向,先让狗跑起来,在狗的跑动过程中再具体点方向,这样可以节约2-4秒鼠标移到狗要跑向的地点的时间。 6.手动分段指挥狗探路,以免被咬或者打死,指挥狗和建筑点放,即回基地用左手大拇指掌根压space切换(一般用H),因为初期,如果没有发生其他时间,那么基地展开的地方便是第一事件。 7.做重要区域,用大姆指和中指按ctrl+F1-4做编号,按F1-4便可以将视野切换到这一区域。 8.平常,左手小指、无名指和中指,分别放在Q、W、E三个键上,拇指放在 space上。 9.在给部队编队时,用大姆指和食指分别按ctrl和数字键1-4;或者左手外掌根按ctrl上,小/无/中/食指分别按大区1/2/3/4。 10.选取部队:快速双击数字键两次。 11.在保护健alt和ctrl组合控制:一般用无名指与食指/大拇指组合;也可以用小指指根+大拇指指根组合。 12、强制攻击时的ctrl键:一般使用小指或大拇指;也可以用小指的掌根,这种方法比较快。 13.(22时,增加这一步)点电场后,左手小指快速按tab,瞄一下颜色,mouseleft点选结盟;小指按ESC退出;左手食指按B,mouseleft信标提示盟友自己位置。
View Details潜意识测试:你童年的阴影!超准的!!!
这是一本古朴而怀旧的相册,当你轻轻翻开它时,映入眼帘的第一张照片是你躺在母亲的怀抱里,正美美地睡着。翻开下一张照片是你在爬来爬去的场景。那么,接下来的第三张你认为会是一幅什么样的照片呢? 1. A.你坐在床上,被很多绒毛小可爱的玩具包围着 2. B.你在浴缸里快乐洗澡、玩耍 3. C.坐着儿童学步椅,正在吃饭的你 4. D.母亲拉着你的手,你正在蹒跚地学走路 选择A的人 生活在框框中物质匮乏的童年——幸福度40% 在你的梦里经常会有紧张和焦虑的感觉吗?你的父母认为孩子能够独立是未来生活的重要基,所以你是在各种规章制度中成长起来的,他们对你的物质要求总是给予一半甚至是少于一半的满足。他们更多的是希望锻炼你的自我控制能力和培养你的同情心。童年里,陪伴你的玩具少而精,至今你还留着一些令你怀旧的童年物品吧。如果用“慈威”这个词来形容你对父母的印,可能最恰当不过了。 也许是因为工作过于繁忙,有多少交流是在和颜悦色下进行的呢?于是从童年开始你就学会了克制自己,不随便表达情感,过于严肃而认真地对待每一个问题,也许那背后隐藏的是你复杂的情感——包括尴尬、自我憎恶,曾经的自豪和被压抑的野心。你够优,也够执著和完美,可是这种过于按部就班严谨的童年,带给你的是成年之后的过度谨慎和小心翼翼,任何一种出轨的行为和思维绝对不会在你的生活中出现,即使是偶尔的放纵也会让自己自责不已!你实在太希望父母和周围人对你满意了。 建议:不要再带着童年的框框“行走江湖”了,它已经让你身心疲惫。少一些,将自己的情绪隐藏于心里或不肯承认内心的情绪;多一些,无伤大雅的“出格”行为,自然的你,不在意别人的你同样魅力十足! 选择B的人 快乐天使的为所欲为——幸福度90% 你的童年是绝对快乐的!自由而率真的天性一直保留到现在,父母给予你的空间是极为宽松,你完全可以按照个人的想法生活。所以你喜欢令人愉快的事 情,喜欢空想,兴趣和爱好十分广泛,好奇心强。寻求娱乐、饮食上的满足,有强烈占有欲,只要是你需要的,父母都会尽量满足,你像一个快乐的天使“为所欲为 ”。善意的恶作剧、顽皮的扮相、出格的打扮,做我所做无怨无悔!儿童时候从不在意自我语言表达方式,是否至今仍习惯使用感叹句,“哇!”“嗨!”…… 你对自己的满意度是相当高的。相信肯定自我,认为自己的理智使你足以冷静地在复杂的人际交往中穿梭,所以蹩脚地耍性子、装模作样吸引他人的注意力 绝不是你的性格。但是,你的内心极度敏感,过高的自尊,难以容纳他人对你提出的忠告和建议,尤其是来自那些与你一样充满自信的人或比你年幼的人,即使私下 里你认为是对的,也绝不承认可以接受对方的想法。接受旁边人的指导、建议、观点,对于你来说就是对自己的否定,对自尊的伤害。所以期待你改变某一种观念真 的很难呀!你不缺乏认同感、安全感,只是少了些留给自己和他人相融的心理空间,那么你带给合作过的人的印象往往是乖僻、别扭又有点拽。 建议:漫长的岁月中还有很多机会需要你的合作,请尽快结束只为自己而执着的心理状态,把时间放长,把空间放宽,让周围更多的理念和创意融进你的心灵。时间流逝后,你更有机会和资本充分展开、仔细打量从容的人生。 选择C的人 沐浴在过度呵护爱的世界中的你被代替成长——幸福度70% 你的童年充分享受了父母的呵护,他们给你的爱也可以说是一种过度的保护。任何事情父母都不离手,怕你冒险出意外,从不让你去尝试、突破。至今他们还担心你一个人是否能独立生。在外人的眼里你善解人意,从不故意找茬、装模作样地表现自己,对他人的建议和劝告耐心倾听接纳,很少表达反对意见,顺从而体贴周围的人。虽然看起来简单而质朴的外在性格使你拥有不少朋友,但是你刻意制造的交往距离,往往使双方很难走进彼此的心灵世界,自己却经常叹息一声:知音难觅。 其实,真实的自我只有在回到了安全的家庭氛围中才会从面具后面走出来。面对亲密的家人,闹性子、毫无顾忌地发脾气,故意做和父母期待相反的事情……低忍、高焦虑的你经常让亲人感到很别扭,却又无可奈何。这是因为你的潜意识在地过度保护你的父母逆反、抗议!童年成长被代替的你,一直渴望有所突破,所以在家里你不愿意做不受人信赖的、一直没有信心的人,你要去证明自己,战胜、超越所有的人。有停地转换角色,徘徊于外面表现得温柔质朴、回到家中蹩脚地发泄自己情绪之间,拥有如此厚重的双重面具,有没有感到身心疲惫呢? 建议:童年的成长经历可能一直让你寻求超越自我的途径,成人之后会感到有一些缺点和内心情绪需要掩饰。但是只有保持一定程度的真实性会让自己身心平衡地与外界接触,才能解决内心的冲突需要寻找到真正的症结所在。当你学会在家庭中享受温暖时,才可以表达自己的一切坦诚和信任。 选择D的人 傲慢寡言面具背后的质朴——幸福度20% 你的童年是在一个极度缺乏安全感的情况下度过的,曾经有多少次渴望倾诉、寻求爱抚都因不能与父母沟通而半途而废,你的情感自始至终都不能有人读得懂。如果不是你的家长对你过于严厉苛刻,就是你根本过早离开父母的怀抱独立,或者是在其他长辈的呵护下成长起来的。童年中你就学会了看着长辈的眼色行事,时而渴望张扬个性,时而却困难以摆脱自卑情绪而沉默寡言。 矛盾和冲突是你内心最重要的词汇,掩饰、修饰、装饰是用来整合你的一切言行,这样看来你才能让你那严厉的父母感到满意,引起他们的注意。来自内心深处对自己的不确定感、不自信,使你经常不愿自己的言行影响到他人对你的看法。所以,与其故意装模作样地引起他人的注意、给人造成某些不必要的麻烦,你更愿意习惯性地顺从长辈、上司,希望自已所做的一切能让周围人满意,并被他们所接纳;然而在表面上,你有傲慢自负的言行来证明自己的与众不同,私下里却为了博得他人的好感,处处替他人着想,并经常为一些后悔的念头所束缚。也许你认为这样,会让所有的一切顺利而和谐,可是当缺少用慎重的目光审视外来信息时,小心陷入被人利用的陷阱中啊! 建议:给自己一次机会,信任自己的决策和选择;给自己一点信心,从矛盾心结中走出来;再给心灵一些力量,人际交往中不一定使每个人都满意,只要你充满诚意就可以了!
View Details