华硕815ETP主板上1.4GCPU,开机检测1.066G

华硕815ETP主板上1.4GCPU,开机检测1.066G,第1张

用CPU-Z等软件检测出来的频率是该CPU目前正常工作的频率,只要正常就没关系,不影响使用。
奔3-S是02年左右刀锋服务器用的CPU,很多民用级主板支持的不是很好,BIOS认不出来很正常,没必要对此耿耿于怀,仅仅是它的ID号主板不支持而已。
只要插上能亮能进系统,而且软件检测正常就可以放心使用,没任何影响。
CPU倍频是锁定的,升不了也降不了,133外频下只有8倍频能达到1066这个频率,但是这是不可能的,所以只是BIOS显示有误,进软件检测正常也说明了这点,所以不用担心。曾经在精英的P6IPAT上插过一次奔3-S113,结果认出来的是奔3-866,进CPU-Z查看频率正常,也就放心用了。

IBM ETP以跨国企业标准设计的模拟公司为平台,面向高校计算机、软件等理工类专业,有志于从事软件开发或服务外包行业工作的优秀大学本科在校生和硕士在校生。

学员通过九个月的学习和实践,将成为IT外包行业的高素质的复合型人才。

IBM cTP(无锡)基地是无锡新区政府与IBM公司合作创建的软件及服务外包人才实训基地。该项目亦是无锡市服务外包“123”计划(到2010年末,全市集聚国际服务外包和软件出口企业100家,每家企业从业人员超过2000人、每家企业年出口超过3000万美元)的一个重要支撑项目。

ETP:

ETP是Electric power Trusteeship Platform的缩写,也就是“运维业务平台”的意思,主要是一个变电站运行数据监测及报警系统。

该系统可以安装在各变电站内,由信息采集器、信息汇集器、运行维护服务器、值班电脑终端四大部分组成。

介绍 : 切换暂离状态。
用法 : /< command > [玩家]
别名 : eafk,away,eaway

介绍 : 回到你上次传送(tp/spawn/warp)的地方。
用法 : /< command >
别名 : eback,return,ereturn

介绍 : 查看玩家拥有的现金,不输入默认为自己。
用法 : /< command > [玩家]
别名 : bal,ebal,ebalance,money,emoney

介绍 : 查看服务器财富榜。
用法 : /< command > < page >
别名 : ebalancetop,baltop,ebaltop

介绍 : 显示当前你的面朝方向。
用法 : /< command >
别名 : ecompass,direction,edirection

介绍 : 查看你所在位置的海拔高度。
用法 : /depth
别名 : edepth,height,eheight

介绍 : 将手中物品佩戴头上
用法 : /< command > [remove]
别名 : ehat,head,ehead

介绍 : 查看帮助命令列表。
用法 : /< command > [搜索项目] [页数]
别名 : ehelp

介绍 : 给在线的管理员发送信息。
用法 : /< command > < 文本 >
别名 : ac,eac,amsg,eamsg,ehelpop

介绍 : 传送回家。
用法 : /< command > [玩家 ][名称]
别名 : ehome,homes,ehomes

介绍 : 查看服务器信息。
用法 : /< command > [章节] [页数]
别名 : about,eabout,ifo,eifo,einfo,inform,einform,news,enews

介绍 : 获得指定的工具包,或查看可用的工具包。
用法 : /< command > [工具包] [玩家]
别名 : ekit,kits,ekits

介绍 : 把(手中|背包|全部方块)物品出售给系统。
用法 : /< command > < 物品名称|物品ID|hand|inventory|blocks > [-][数量]
别名 : esell

介绍 : 查看/清除/发送 邮件。
用法 : /< command > [read|clear|send [to] [文本]|sendall [文本]]
别名 : email,eemail

介绍 : 在接下来说的话中添加星号前缀。
用法 : /< command > < 描述 >
别名 : action,eaction,describe,edescribe,eme

介绍 : 查看今日服务器消息。
用法 : /< command > [章节] [页面]
别名 : emotd

介绍 : 发送一条密语给某玩家。
用法 : /< command > < 玩家 > < 文本 >
别名 : w,m,t,emsg,tell,etell,whisper,ewhisper

介绍 : 改变自己或者别人的昵称。
用法 : /< command > [玩家] < 昵称|off >
别名 : enick,nickname,enickname

介绍 : ### 从你的账户中转账付费给某玩家。
用法 : /< command > < 玩家 > < 钱数 >
别名 : epay

介绍 : 快速回复别人发给你的信息(邮件/私信)。
用法 : /< command > < 文本 >
别名 : er,reply,ereply

介绍 : 查看某玩家的真名(nick之前的名字)。
用法 : /< command > < 昵称 >
别名 : erealname

介绍 : 查看服务器规则。
用法 : /< command > [章节] [页面]
别名 : erules

介绍 : 把你的家设置在这个位置。
用法 : /< command > [[玩家 ]名称]
别名 : esethome,createhome,ecreatehome

介绍 : 自杀。
用法 : /< command >
别名 : esuicide

介绍 : 发送一条传送请求,让你传送到对象玩家的地点。
用法 : /< command > < 玩家 >
别名 : call,ecall,etpa,tpask,etpask

介绍 : 发送一条传送请求,让所有玩家都传送到你这里。
用法 : /< command > < 玩家 >
别名 : etpaall

介绍 : 接受传送请求。
用法 : /< command > [其他玩家]
别名 : etpaccept,tpyes,etpyes

介绍 : 发送一条传送请求,让对象玩家传送到你所在的地点。
用法 : /< command > < 玩家 >
别名 : etpahere

介绍 : 拒绝传送请求。
用法 : /< command >
别名 : etpdeny,tpno,etpno

介绍 : 拒绝所有传送。
用法 : /< command > [玩家] [on|off]
别名 : etptoggle

介绍 : 列出所有的地标,或传送到该地标。
用法 : /< command > < pagenumber|warp > [玩家]
别名 : ewarp,warps,ewarps

介绍 : 查看某物品的价值。
用法 : /< command > [物品] [数量]
别名 : eprice,price,eworth

介绍 : 在昵称后面显示真名,并列出玩家信息。
用法 : /< command > < 昵称 >
别名 : ewhois

介绍 : 查看你或其他玩家的坐标。
用法 : /< command > [玩家]
别名 : coords,egetpos,position,eposition,whereami,ewhereami,getlocation,egetlocation,getloc,egetloc

介绍 : 随时随地开启一个工作台。
用法 : /< command >
别名 : craft,ecraft,wb,ewb,wbench,ewbench,eworkbench

介绍 : 在你准心所对的位置生成一颗大树。
用法 : /< command > < tree|birch|redwood|redmushroom|brownmushroom|jungle|junglebush|swamp >
别名 : etree

介绍 : 发送一个全服广播。
用法 : /< command > < 文本 >
别名 : bc,ebc,bcast,ebcast,ebroadcast,shout,eshout

介绍 : 开启/关闭飞行状态!
用法 : /< command > [玩家] [on|off]
别名 : efly

介绍 : 允许你修改手中的烟花
用法 : /< command > < < meta param >|power [amount]|clear|fire [amount] >
别名 : efirework

介绍 : 开启/关闭上帝模式(不受伤害)
用法 : /< command > [玩家] [on|off]
别名 : egod,godmode,egodmode,tgm,etgm

介绍 : 传送到视野尽头。
用法 : /< command >
别名 : j,ej,ejump,jumpto,ejumpto

介绍 : 允许某玩家无限放置某方块。
用法 : /< command > < list|item|clear > [玩家]
别名 : eunlimited,ul,unl,eul,eunl

介绍 : 进入隐身模式,其他玩家将无法看到你。
用法 : /< command > [玩家] [on|off]
别名 : v,ev,evanish

介绍 : 传送到你所站坐标上的最高方块处。
用法 : /< command >
别名 : etop

介绍 : 允许打开并编辑一本书。
用法 : /< command > [标题|作者 [名称]]
别名 : ebook

介绍 : 调整玩家的经济状况(给钱|拿钱|设置|重置)。
用法 : /< command > < give|take|set|reset > < 玩家 > < 数量 >
别名 : eeco,economy,eeconomy

介绍 : 改变某玩家的游戏模式。
用法 : /< command > < survival|creative|adventure > [玩家]
别名 : adventure,eadventure,adventuremode,eadventuremode,creative,eecreative,creativemode,ecreativemode,egamemode,gm,egm,gma,egma,gmc,egmc,gms,egms,gmt,egmt,survival,esurvival,survivalmode,esurvivalmode

介绍 : 在目标位置放置一个点燃的TNT。
用法 : /< command > [文本]
别名 : eantioch,grenade,egrenade,tnt,etnt

介绍 : 进行备份。
用法 : /< command >
别名 : ebackup

介绍 : 封禁一个玩家。
用法 : /< command > < 玩家 > [理由]
别名 : eban

介绍 : 封禁一个玩家的IP地址。
用法 : /< command > < IP地址或玩家名称 >
别名 : ebanip

介绍 : 破坏掉你面对着的方块。
用法 : /< command >
别名 : ebreak

介绍 : 在你的视野内生成一颗大树。
用法 : /< command > < tree|redwood|jungle >
别名 : ebigtree,largetree,elargetree

介绍 : 使玩家着火。
用法 : /< command > < 玩家 > < 时间(秒) >
别名 : eburn

介绍 : 清空指定玩家背包物品。
用法 : /< command > [玩家| ] [物品[ < 数据值 >]| |]
别名 : ci,eci,clean,eclean,clear,eclear,clearinvent,eclearinvent,eclearinventory

介绍 : 允许创建自定义信息指令。
用法 : /< alias > - 在bukkit。yml中定义

介绍 : 删除一个家。
用法 : /< command > [玩家 ]< 名称 >
别名 : edelhome,remhome,eremhome,rmhome,ermhome

介绍 : 删除一个监狱。
用法 : /< command > < 监狱名称 >
别名 : edeljail,remjail,eremjail,rmjail,ermjail

介绍 : 删除一个地标。
用法 : /< command > < 地标名称 >
别名 : edelwarp,remwarp,eremwarp,rmwarp,ermwarp

介绍 : 附魔手中物品。
用法 : /< command > < 附魔名称 > [附魔等级]
别名 : eenchant,enchantment,eenchantment

介绍 : 查看玩家的末影箱。 不输入则为自己。
用法 : /< command > [玩家]
别名 : echest,eechest,eenderchest,endersee,eendersee,ec,eec

介绍 : 重载Essentials插件。
用法 : /< command >
别名 : eessentials ,### ess ,### eess ,### essversion

介绍 : 给予,设置,或查看一个玩家的经验值。
用法 : /< command > [show|set|give] [玩家名称 [数量]]
别名 : eexp,xp

介绍 : 熄灭玩家身上的火。
用法 : /< command > [玩家]
别名 : eext,extinguish,eextinguish

介绍 : 使玩家饱食度回复满。
用法 : /< command > [玩家]
别名 : eat,eeat,efeed

介绍 : 扔出一个火球。
用法 : /< command > [small|skull]
别名 : efireball,fireentity,efireentity,fireskull,efireskull

介绍 : 报告服务器剩余资源信息。
用法 : /< command > [all]
别名 : lag,elag,egc,mem,emem,memory,ememory,uptime,euptime,tps,etps,entities,eentities

介绍 : 给某玩家一个物品。
用法 : /< command > < 玩家 > < 物品|物品ID > [数量 < 附魔名称[ 附魔等级] > 。。。]
别名 : egive

介绍 : 治愈某玩家。
用法 : /< command > [玩家]
别名 : eheal

介绍 : 忽略某玩家。
用法 : /< command > < 玩家 >
别名 : eignore

介绍 : 查看某玩家背包。
用法 : /< command > < 玩家 >
别名 : einvsee

介绍 : 生成一个物品。
用法 : /< command > < 物品名称|物品ID > [数量 < 附魔名称[ 附魔等级] > 。。。]
别名 : i,eitem,ei

介绍 : 搜索物品。
用法 : /< command > < 物品|物品ID >
别名 : dura,edura,durability,edurability,eitemdb,itemno,eitemno

介绍 : 显示所有监狱的列表。
用法 : /< command >
别名 : ejails

介绍 : 把某玩家以某理由从服务器踢出。
用法 : /< command > < 玩家 > [理由]
别名 : ekick

介绍 : 把所有玩家踢出服务器,除了OP。
用法 : /< command > [理由]
别名 : ekickall

介绍 : 杀死某个玩家。
用法 : /< command > < 玩家 >
别名 : ekill

介绍 : 向你的对手扔出一个爆炸的小猫。
用法 : /< command >
别名 : ekittycannon

介绍 : 神的力量!让闪电劈到准星处或玩家头顶。
用法 : /< command > [玩家] [威力]
别名 : elightning,shock,eshock,smite,esmite,strike,estrike,thor,ethor

介绍 : 查看指定组在线玩家。 忽略组则查看全部在线玩家
用法 : /< command > [组]
别名 : elist,online,eonline,playerlist,eplayerlist,plist,eplist,who,ewho

介绍 : 让手中物品达到最大堆叠。
用法 : /< command >
别名 : emore

介绍 : 禁言或解禁玩家。
用法 : /< command > < 玩家 > [时间]
别名 : emute,silence,esilence

介绍 : 发射核武器。 户外玩家均受影响 ,### 慎用。
用法 : /< command > [玩家]
别名 : enuke

介绍 : 列出自己身边的玩家 ,### 或列出某玩家附近的其它玩家。
用法 : /< command > [玩家名称] [半径]
别名 : enear,nearby,enearby

介绍 : 啪啪啪啪啪啪啪啪啪!
用法 : /< command >
别名 : echo,eecho,eping,pong,epong

介绍 : 为一个药水瓶添加自定义药水效果。
用法 : /< command > < clear|apply|effect < 效果 > power < 强度 > duration < 持续时间 > >
别名 : epotion,elixer,eelixer

介绍 : 给手中物品指定一个命令。
用法 : /< command > [l |a |r |c |d ][命令] [参数] - {玩家} 可以点击玩家的名字所取代。
别名 : epowertool,pt,ept

介绍 : 开启或关闭当前所有的powertool。
用法 : /< command >
别名 : epowertooltoggle,ptt,eptt,pttoggle,epttoggle

介绍 : 专门调整某玩家客户端的时间。 添加 @ 前缀来修复。
用法 : /< command > [list|reset|day|night|dawn|17 30|4pm|4000ticks] [玩家|]
别名 : playertime,eplayertime,eptime

介绍 : 修改一位玩家的天气
用法 : /< command > [list|reset|storm|sun|clear] [player|]
别名 : playerweather,eplayerweather,epweather

介绍 : 显示物品的合成配方。
用法 : /< command > < 物品 > [数字]
别名 : formula,eformula,method,emethod,erecipe,recipes,erecipes

介绍 : 删除指定世界中的实体(全部|驯服的|掉落的物品|箭|船|矿车|经验|挂画|展示框|末影水晶|怪物|动物|环境生物(目前只有蝙蝠)|怪物|怪物类型|)。
用法 : /< command > < all|tamed|drops|arrows|boats|minecarts|xp|paintings|itemframes|endercrystals|monsters|animals|ambient|mobs|[mobType] > [半径] [世界]
别名 : eremove,butcher,ebutcher,killall,ekillall,mobkill,emobkill

介绍 : 修复< 手中|所有 >的物品。
用法 : /< command > [hand|all]
别名 : fix,efix,erepair

介绍 : 查看一位玩家|IP最后登出的时间。
用法 : /< command > < 玩家 >
别名 : eseen

介绍 : 在你所在位置设置一个监狱,名称叫 [监狱名称]
用法 : /< command > < 监狱名称 >
别名 : esetjail,createjail,ecreatejail

介绍 : 创建一个新的地标。
用法 : /< command > < 地标名称 >
别名 : createwarp,ecreatewarp,esetwarp

介绍 : 设置某个物品的价值。
用法 : /< command > [物品名称|物品ID] < 价格 >
别名 : esetworth

介绍 : 切换你是否可以看到其他[指定]玩家的私聊和邮件。
用法 : /< command > [玩家] [on|off]
别名 : esocialspy

介绍 : 改变一个刷怪笼的类型。
用法 : /< command > < 生物类型 > [延迟]
别名 : changems,echangems,espawner,mobspawner,emobspawner

介绍 : 生成一个生物。
用法 : /< command > < 生物类型 >[ data][,< mount >[ data]] [数量] [玩家]
别名 : mob,emob,spawnentity,espawnentity,espawnmob

介绍 : 改变移动速度。
用法 : /< command > [类型] < 速度值 > [玩家]
别名 : flyspeed,eflyspeed,fspeed,efspeed,espeed,walkspeed,ewalkspeed,wspeed,ewspeed

介绍 : 让某玩家强制执行一个命令。
用法 : /< command > < 玩家 > < 命令 [参数] >
别名 : esudo

介绍 : 临时封禁一个玩家。
用法 : /< command > < 玩家 > < 时间 >
别名 : etempban

介绍 : 允许/禁止 自然雷击。
用法 : /< command > < true/false > [持续时间]
别名 : ethunder

介绍 : 显示/改变世界的时间,默认当前世界。
用法 : /< command > [day|night|dawn|17 30|4pm|4000ticks] [世界名称|all]
别名 : day,eday,night,enight,etime

介绍 : 监禁/解禁一个玩家,并传送他到监狱。
用法 : /< command > < 玩家 > < jailname > [datediff]
别名 : jail,ejail,tjail,etjail,etogglejail,unjail,eunjail

介绍 : 强行传送或传送到某玩家。
用法 : /< command > < 玩家 > [另一个玩家]
别名 : tele,etele,teleport,eteleport,etp,tp2p,etp2p

介绍 : 强制把所有在线玩家传送到自己的位置。
用法 : /< command > < 玩家 >
别名 : etpall

介绍 : 强制把一个玩家传送到自己的位置。
用法 : /< command > < 玩家 >
别名 : s,etphere

介绍 : 强行传送到某玩家,无视拒绝传送。
用法 : /< command > < 玩家 > [其他玩家]
别名 : etpo

介绍 : 强制把一个玩家传送到自己的位置,无视拒绝传送。
用法 : /< command > < 玩家 >
别名 : etpohere

介绍 : 把自己传送到某个坐标。
用法 : /< command > < x坐标 > < y坐标 > < z坐标 > [角度] [视角]
别名 : etppos

介绍 : 解除封禁玩家。
用法 : /< command > < 玩家 >
别名 : pardon,eunban,epardon

介绍 : 解除封禁IP地址。
用法 : /< command > < address >
别名 : eunbanip,pardonip,epardonip

介绍 : 设置所在世界的天气。
用法 : /< command > < storm/sun > [持续时间]
别名 : rain,erain,sky,esky,storm,estorm,sun,esun,eweather

介绍 : 在各个世界间同坐标转换。
用法 : /< command > [世界]
别名 : eworld

介绍 : 重载配置(仅限Bukkit)。
用法 : /colormotd < command >
权限 : colormotdreload

介绍 : 立刻检查更新。
用法 : /colormotd < command >
权限 : colormotdupdate

介绍 : 切换开关维护模式。
用法 : /colormotd < command >
权限 : colormotdreload

介绍 : 显示插件信息。
用法 : /colormotd < command >
权限 : 无需权限

介绍 : 能否在维护模式下进入服务器。
权限 : colormotdsmodeenter

介绍 :移动用户到希望的用户组。(如果不存在的话会添加用户组到文件)
用法 : /<命令> <玩家> <用户组>
权限 :groupmanagermanuadd

介绍 :移除所有此用户特定的配置。使他进入默认用户组。
用法 : /<命令> <玩家>
权限 :groupmanagermanudel

介绍 :允许在继承树中向上提升一个玩家。这个命令只会允许用户在相互继承的用户组之间移动。
用法 : /<命令> <玩家> <用户组>
权限 :groupmanagermanpromote

介绍 :允许在继承树中向下降级一个玩家。这个命令只会允许用户在相互继承的用户组之间移动。
用法 : /<命令> <玩家> <用户组>
权限 :groupmanagermandemote

介绍 :获得用户处在的用户组。
用法 : /<命令> <玩家> 查看一个名叫Lushie的玩家的权限组信息
权限 :groupmanagermanwhois

介绍 :清空所选世界的所有权限组,默认主世界。 慎重使用
用法 : /<命令> <世界名>
权限 :groupmanagermanclear

介绍 :创建一个新的组,以供分配玩家进入(基础组插件自带,不能创建与基础组重名的组名,例如你不能创建一个叫做default的组,因为它是插件自带组。
用法 : /<命令> <组名>
权限 :groupmanagermangadd

介绍 :删除一个组。这个指令不会导致你删掉的这个组的继承组的已继承指令。被删掉的这个组里的玩家会进入默认组。
用法 : /<命令> <组名>
权限 :groupmanagermangdel

介绍 :添加组A到组B的继承列表中。继承后,A组会拥有组B的所有权限,改动组A的权限会影响组B的权限,但修改组B的权限不会影响组A的权限。
用法 : /<命令> <组A> <组B>
权限 :groupmanagermangaddi

介绍 :把组A从组B的继承列表里移除。 注意,移除后继承组仍然拥有被继承组的权限。请慎重使用此条命令及上条命令。
用法 : /<命令> <组A> <组B>
权限 :groupmanagermangdeli

介绍 :为所选组添加权限。
用法 : /<命令> <组名> <权限>
权限 :groupmanagermangaddp

介绍 :列出所选组的所有权限以及继承对象。
用法 : /<命令> <组名>
权限 :groupmanagermanglistp

介绍 :列出所选组的前后缀,如果没有则会在prefix和suffix后面显示空的’’号。
用法 : /<命令> <组名>
权限 :groupmanagermanglistv

介绍 :检查权限组是否具有权限并查看来源。
用法 : /<命令> <组名>
权限 :groupmanagermangcheckp

介绍 :查找权限文件保存路径,默认为主世界。
用法 : /<命令> <世界名>
权限 :groupmanagermancheckw

介绍 :选择一个世界以进行后续编辑指令(用于多世界)。
用法 : /<命令> <世界名>
权限 :groupmanagermanselect

介绍 :查看你当前正在编辑的世界名,与上面的指令一样应用于多世界插件,如果没有使用多世界插件或只有一个世界,这条指令对你帮助不大。
用法 : /<命令> <世界名>
权限 :groupmanagermanworld

介绍 :为所选组添加前后缀,一次只能添加一种缀。前缀在玩家名前面,后缀在后面。
用法 : /<命令> <组名> <prefix/suffix> <你想要的缀名> 缀名可用颜色字符,在字词前加&后面跟1-9的数字或a-e的字母。
权限 :groupmanagermangaddv

介绍 :从一个用户组移除一个变量
用法 : /<命令> <用户组> <变量>
权限 :groupmanagermangdelv

介绍 :列出一个用户组拥有的所有变量
用法 : /<命令> <用户组>
权限 :groupmanagermanglistv

介绍 :查证玩家组的一个变量取值及来源
用法 : /<命令> <用户组> <变量>
权限 :groupmanagermangcheckv

介绍 :保存权限修改至文件
用法 : /<命令>
权限 :groupmanagermansave

介绍 :加载当前世界和configyml,或加载给定世界
用法 : /<命令> [世界]
权限 :groupmanagermanload

介绍 :切换玩家在线验证开关
用法 : /<命令>
权限 :groupmanagermantogglevalidate

介绍 :切换自动保存开关
用法 : /<命令>
权限 :groupmanagermantogglesave

介绍 :显示选定的世界名
用法 : /<命令>
权限 :groupmanagermanworld

介绍 :选定下一个命令工作的世界
用法 : /<命令> <世界>
权限 :groupmanagermanselect

介绍 :清除世界的选定,下一个命令会在你的世界工作
用法 : /<命令>
权限 :groupmanagermanclear

介绍 :获得一个世界的每一个文件(users/groups)储存的路径
用法 : /<命令> <世界>
权限 :groupmanagermancheckw

电子通讯类产品。深圳华为技术有限公司华为是全球领先的下一代电信网络解决方案供应商,华为致力于向客户提供创新的满足其需求的产品、服务和解决方案,为客户创造长期的价值和潜在的增长。华为产品和解决方案涵盖移动(HSDPA/WCDMA/EDGE/ GPRS/GSM, CDMA2000 1X EVDO/CDMA2000 1X, TD-SCDMA和WiMAX)、核心网(IMS, Mobile Softswitch, NGN)、网络(FTTX, xDSL, 光网络, 路由器和LAN Switch)、电信增值业务(IN, mobile data service, Boss)、终端(UMTS/CDMA)等领域。华为在印度、美国、瑞典、俄罗斯以及中国的北京、上海、南京等地设立了研究所,44000名员工中的48%从事研发工作,截至2006年6月已累计申请专利超过14000件,已连续数年成为中国申请专利最多的单位。华为的营销及服务网络遍及全球,为客户提供快速、优质的服务。目前华为的产品和解决方案已应用于28个全球前50强的运营商,服务全球超过10亿用户。发展历程2005华为与沃达丰签署全球采购框架协议,正式成为沃达丰全球供应链的优选通信设备供应商。华为与Telefónica签署战略合作协议,Telefónica选择华为作为其在3G和宽带领域进行业务创新的战略性合作伙伴,同时双方还将携手拓展拉美地区市场。华为第三次登上Frost & Sullivan亚太区技术大奖的领奖台,获得2005年亚太区“年度无线设备供应商”、“年度NGN设备供应商”和“年度光网络供应商”三项大奖。华为大学正式注册成立,面向客户、公司管理层及员工全面系统的技术、管理、文化等培训。与英国Marconi公司签署了互助商品代销协议。根据该协议及初期达成的谅解备忘录,两家公司互相销售对方的部分产品。Marconi将仅以Marconi的品牌向电信运营商转销华为的电信级数据通信产品 ,而华为将在其无线网络项目中转销Marconi的微波设备,包括下一代微波设备以及相关的网络服务。赢得了为泰国CAT建设全国性CDMA2000 的3G网络,价值187亿美元。成为英国电信(简称BT)首选的21CN网络供应商,为BT21CN网络提供多业务网络接入(MSAN)部件和传输设备。获得了在中国生产和销售手机的许可。2004与西门子成立合资企业,针对中国市场开发TD-SCDMA移动通信技术。华为赢得中国电信的国家骨干网优化合同。此项目的目标是优化中国电信在广东省的163个骨干网络。根据合同,华为的高端路由器NE5000获得了TSR采购合同100%的市场份额,成功地进入了国家骨干网的两个超级节点。同时,华为的Gbit交换路由器NE80赢得了该项目75%的市场份额。华为与中国电信签署合同,建造1,200多万个ADSL线路,进一步巩固了华为作为中国电信最大战略伙伴的地位。获得由Frost & Sullivan颁发的“亚太区2004年度最有前途企业”和“亚太区2004年度宽带设备供应商”两个奖项。Frost & Sullivan是一家全球市场研究机构,提供有关新兴高科技和产业市场的信息和情报。获得从29家银行共同提供为期三年的3亿6千万美元的贷款,用于实施公司的全球发展规划。华为赢得为荷兰运营商Telfort 提供UMTS网络设备的合同。2003Cisco Systems指控华为侵犯部分 Cisco技术专利;但是,Cisco最终撤回了诉状,双方解决了所有的专利纠纷,并承认华为没有侵权行为。在世界各地部署了1亿个C&C08端口,创造了行业记录。与3Com成立合资企业,生产企业数据网络设备。通过了DNV (DET NORSKE VERITAS)的ISO 14001认证。在12月为阿联酋电信公司 (Etisalat)提供了一项覆盖全国范围的UMTS服务,强化了Etisalat技术领导者的地位,同时帮助其成为中东和阿拉伯世界中第一个引进第三代网络的运营商。2002尽管2001年到2002年间,全球电信基础设施的投资下降了50%,华为 的国际销售额还是增长了68%,从2001年的328亿美元上升到2002年的552亿美元。华为通过了UL的TL9000质量管理系统认证。为中国移动部署世界上第一个移动模式WLAN。200110 Gbps SDH系统开始在德国的柏林进行商用。根据RHK的统计,华为的光纤系列产品稳居亚太地区市场份额的第1名。将华为的一个分公司Avansys以7亿5千万美元出售给Emerson。成为国际电信联盟的成员。2000合同销售额超过265亿美元,其中海外销售额超过1亿美元。在美国硅谷和达拉斯设立研发中心。1999成为中国移动全国CAMEL Phase II智能网的主要供应商,该网络是当时世界上最大和最先进的智能网络。成立班加罗尔研发中心,并于2001年通过了CMM4级认证,在2003年通过CMM5级认证。1998产品数字微蜂窝服务器控制交换机获得了专利。成立南京研发中心,并于2003年6月通过了CMM4级认证。1997推出GSM设备。与Texas Instruments、Motorola、IBM、Intel、Agere Systems、Sun Microsystems、Altera、Qualcomm、Infineon和 Microsoft,成立了联合研发实验室。截至2005年6月,华为共有10所联合研发实验室。从1997年起,IBM, Towers Perrin, The Hay Group, PricewaterhouseCoppers(PWC)和 Fraunhofer-Gesellschaft (FhG) 成为华为在流程变革、员工股权计划、人力资源管理、财务管理和质量控制方面的顾问。与这些主要的跨国咨询公司的合作,使华为可以随时了解行业的最新动态。1996推出综合业务接入网和光网络SDH设备。与香港和记黄埔签订合同,为其提供固定网络解决方案。成立上海研发中心,并于2004年通过了CMM5级认证。1995 成立知识产权部。成立北京研发中心,并于2003年通过了CMM4级认证。1994 推出C&C08 数字程控交换机。1989 自主开发PBX。1988 创立于中国深圳。

基于C#的socket编程的TCP异步实现
一、摘要
本篇博文阐述基于TCP通信协议的异步实现。
二、实验平台
Visual Studio 2010
三、异步通信实现原理及常用方法
31 建立连接 
在同步模式中,在服务器上使用Accept方法接入连接请求,而在客户端则使用Connect方法来连接服务器。相对地,在异步模式下,服务器可以使用BeginAccept方法和EndAccept方法来完成连接到客户端的任务,在客户端则通过BeginConnect方法和EndConnect方法来实现与服务器的连接。
BeginAccept在异步方式下传入的连接尝试,它允许其他动作而不必等待连接建立才继续执行后面程序。在调用BeginAccept之前,必须使用Listen方法来侦听是否有连接请求,BeginAccept的函数原型为:
BeginAccept(AsyncCallback AsyncCallback, Ojbect state)
参数:
AsyncCallBack:代表回调函数
state:表示状态信息,必须保证state中包含socket的句柄
使用BeginAccept的基本流程是:
(1)创建本地终节点,并新建套接字与本地终节点进行绑定;
(2)在端口上侦听是否有新的连接请求;
(3)请求开始接入新的连接,传入Socket的实例或者StateOjbect的实例。
参考代码:
复制代码
//定义IP地址
IPAddress local = IPAddressParse("1270,0,1");
IPEndPoint iep = new IPEndPoint(local,13000);
//创建服务器的socket对象
Socket server = new Socket(AddressFamilyInterNetwork,SocketTypeStream,ProtocolTypeTcp);
serverBind(iep);
serverListen(20);
serverBeginAccecpt(new AsyncCallback(Accept),server);
复制代码
当BeginAccept()方法调用结束后,一旦新的连接发生,将调用回调函数,而该回调函数必须包括用来结束接入连接 *** 作的EndAccept()方法。
该方法参数列表为 Socket EndAccept(IAsyncResult iar)
下面为回调函数的实例:
复制代码
void Accept(IAsyncResult iar)
{
//还原传入的原始套接字
Socket MyServer = (Socket)iarAsyncState;
//在原始套接字上调用EndAccept方法,返回新的套接字
Socket service = MyServerEndAccept(iar);
}
复制代码
至此,服务器端已经准备好了。客户端应通过BeginConnect方法和EndConnect来远程连接主机。在调用BeginConnect方法时必须注册相应的回调函数并且至少传递一个Socket的实例给state参数,以保证EndConnect方法中能使用原始的套接字。下面是一段是BeginConnect的调用:
Socket socket=new Socket(AddressFamilyInterNetwork,SocketTypeStream,ProtocolTypeTcp)
IPAddress ip=IPAddressParse("127001");
IPEndPoint iep=new IPEndPoint(ip,13000);
socketBeginConnect(iep, new AsyncCallback(Connect),socket);
EndConnect是一种阻塞方法,用于完成BeginConnect方法的异步连接诶远程主机的请求。在注册了回调函数后必须接收BeginConnect方法返回的IASynccReuslt作为参数。下面为代码演示:
复制代码
void Connect(IAsyncResult iar)
{
Socket client=(Socket)iarAsyncState;
try
{
clientEndConnect(iar);
}
catch (Exception e)
{
ConsoleWriteLine(eToString());
}
finally
{
}
}
复制代码
除了采用上述方法建立连接之后,也可以采用TcpListener类里面的方法进行连接建立。下面是服务器端对关于TcpListener类使用BeginAccetpTcpClient方法处理一个传入的连接尝试。以下是使用BeginAccetpTcpClient方法和EndAccetpTcpClient方法的代码:
复制代码
public static void DoBeginAccept(TcpListener listner)
{
//开始从客户端监听连接
ConsoleWriteLine("Waitting for a connection");
//接收连接
//开始准备接入新的连接,一旦有新连接尝试则调用回调函数DoAcceptTcpCliet
listnerBeginAcceptTcpClient(new AsyncCallback(DoAcceptTcpCliet), listner);
}
//处理客户端的连接
public static void DoAcceptTcpCliet(IAsyncResult iar)
{
//还原原始的TcpListner对象
TcpListener listener = (TcpListener)iarAsyncState;
//完成连接的动作,并返回新的TcpClient
TcpClient client = listenerEndAcceptTcpClient(iar);
ConsoleWriteLine("连接成功");
}
复制代码
代码的处理逻辑为:
(1)调用BeginAccetpTcpClient方法开开始连接新的连接,当连接视图发生时,回调函数被调用以完成连接 *** 作;
(2)上面DoAcceptTcpCliet方法通过AsyncState属性获得由BeginAcceptTcpClient传入的listner实例;
(3)在得到listener对象后,用它调用EndAcceptTcpClient方法,该方法返回新的包含客户端信息的TcpClient。
BeginConnect方法和EndConnect方法可用于客户端尝试建立与服务端的连接,这里和第一种方法并无区别。下面看实例:
复制代码
public void doBeginConnect(IAsyncResult iar)
{
Socket client=(Socket)iarAsyncState;
//开始与远程主机进行连接
clientBeginConnect(serverIP[0],13000,requestCallBack,client);
ConsoleWriteLine("开始与服务器进行连接");
}
private void requestCallBack(IAsyncResult iar)
{
try
{
//还原原始的TcpClient对象
TcpClient client=(TcpClient)iarAsyncState;
//
clientEndConnect(iar);
ConsoleWriteLine("与服务器{0}连接成功",clientClientRemoteEndPoint);
}
catch(Exception e)
{
ConsoleWriteLine(eToString());
}
finally
{
}
}
复制代码
以上是建立连接的两种方法。可根据需要选择使用。
32 发送与接受数据
在建立了套接字的连接后,就可以服务器端和客户端之间进行数据通信了。异步套接字用BeginSend和EndSend方法来负责数据的发送。注意在调用BeginSend方法前要确保双方都已经建立连接,否则会出异常。下面演示代码:
复制代码
private static void Send(Socket handler, String data)
{
// Convert the string data to byte data using ASCII encoding
byte[] byteData = EncodingASCIIGetBytes(data);
// Begin sending the data to the remote device
handlerBeginSend(byteData, 0, byteDataLength, 0, new AsyncCallback(SendCallback), handler);
}
private static void SendCallback(IAsyncResult ar)
{
try
{
// Retrieve the socket from the state object
Socket handler = (Socket)arAsyncState;
// Complete sending the data to the remote device
int bytesSent = handlerEndSend(ar);
ConsoleWriteLine("Sent {0} bytes to client", bytesSent);
handlerShutdown(SocketShutdownBoth);
handlerClose();
}
catch (Exception e)
{
ConsoleWriteLine(eToString());
}
}
复制代码
接收数据是通过BeginReceive和EndReceive方法:
复制代码
private static void Receive(Socket client)
{
try
{
// Create the state object
StateObject state = new StateObject();
stateworkSocket = client;
// Begin receiving the data from the remote device
clientBeginReceive(statebuffer, 0, StateObjectBufferSize, 0, new AsyncCallback(ReceiveCallback), state);
}
catch (Exception e)
{
ConsoleWriteLine(eToString());
}
}
private static void ReceiveCallback(IAsyncResult ar)
{
try
{
// Retrieve the state object and the client socket
// from the asynchronous state object
StateObject state = (StateObject)arAsyncState;
Socket client = stateworkSocket;
// Read data from the remote device
int bytesRead = clientEndReceive(ar);
if (bytesRead > 0)
{
// There might be more data, so store the data received so far
statesbAppend(EncodingASCIIGetString(statebuffer, 0, bytesRead));
// Get the rest of the data
clientBeginReceive(statebuffer, 0, StateObjectBufferSize, 0, new AsyncCallback(ReceiveCallback), state);
}
else
{
// All the data has arrived; put it in response
if (statesbLength > 1)
{
response = statesbToString();
}
// Signal that all bytes have been received
receiveDoneSet();
}
}
catch (Exception e)
{
ConsoleWriteLine(eToString());
}
}
复制代码
上述代码的处理逻辑为:
(1)首先处理连接的回调函数里得到的通讯套接字client,接着开始接收数据;
(2)当数据发送到缓冲区中,BeginReceive方法试图从buffer数组中读取长度为bufferlength的数据块,并返回接收到的数据量bytesRead。最后接收并打印数据。

除了上述方法外,还可以使用基于NetworkStream相关的异步发送和接收方法,下面是基于NetworkStream相关的异步发送和接收方法的使用介绍。
NetworkStream使用BeginRead和EndRead方法进行读 *** 作,使用BeginWreite和EndWrete方法进行写 *** 作,下面看实例:
复制代码
static void DataHandle(TcpClient client)
{
TcpClient tcpClient = client;
//使用TcpClient的GetStream方法获取网络流
NetworkStream ns = tcpClientGetStream();
//检查网络流是否可读
if(nsCanRead)
{
//定义缓冲区
byte[] read = new byte[1024];
nsBeginRead(read,0,readLength,new AsyncCallback(myReadCallBack),ns);
}
else
{
ConsoleWriteLine("无法从网络中读取流数据");
}
}
public static void myReadCallBack(IAsyncResult iar)
{
NetworkStream ns = (NetworkStream)iarAsyncState;
byte[] read = new byte[1024];
String data = "";
int recv;
recv = nsEndRead(iar);
data = StringConcat(data, EncodingASCIIGetString(read, 0, recv));
//接收到的消息长度可能大于缓冲区总大小,反复循环直到读完为止
while (nsDataAvailable)
{
nsBeginRead(read, 0, readLength, new AsyncCallback(myReadCallBack), ns);
}
//打印
ConsoleWriteLine("您收到的信息是" + data);
}
复制代码
33 程序阻塞与异步中的同步问题
Net里提供了EventWaitHandle类来表示一个线程的同步事件。EventWaitHandle即事件等待句柄,他允许线程通过 *** 作系统互发信号和等待彼此的信号来达到线程同步的目的。这个类有2个子类,分别为AutoRestEevnt(自动重置)和ManualRestEvent(手动重置)。下面是线程同步的几个方法:
(1)Rset方法:将事件状态设为非终止状态,导致线程阻塞。这里的线程阻塞是指允许其他需要等待的线程进行阻塞即让含WaitOne()方法的线程阻塞;
(2)Set方法:将事件状态设为终止状态,允许一个或多个等待线程继续。该方法发送一个信号给 *** 作系统,让处于等待的某个线程从阻塞状态转换为继续运行,即WaitOne方法的线程不在阻塞;
(3)WaitOne方法:阻塞当前线程,直到当前的等待句柄收到信号。此方法将一直使本线程处于阻塞状态直到收到信号为止,即当其他非阻塞进程调用set方法时可以继续执行。
复制代码
public static void StartListening()
{
// Data buffer for incoming data
byte[] bytes = new Byte[1024];
// Establish the local endpoint for the socket
// The DNS name of the computer
// running the listener is "hostcontosocom"
//IPHostEntry ipHostInfo = DnsResolve(DnsGetHostName());
//IPAddress ipAddress = ipHostInfoAddressList[0];
IPAddress ipAddress = IPAddressParse("127001");
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000);
// Create a TCP/IP socket
Socket listener = new Socket(AddressFamilyInterNetwork,SocketTypeStream, ProtocolTypeTcp);
// Bind the socket to the local
//endpoint and listen for incoming connections
try
{
listenerBind(localEndPoint);
listenerListen(100);
while (true)
{
// Set the event to nonsignaled state
allDoneReset();
// Start an asynchronous socket to listen for connections
ConsoleWriteLine("Waiting for a connection");
listenerBeginAccept(new AsyncCallback(AcceptCallback),listener);
// Wait until a connection is made before continuing
allDoneWaitOne();
}
}
catch (Exception e)
{
ConsoleWriteLine(eToString());
}
ConsoleWriteLine("\nPress ENTER to continue");
ConsoleRead();
}
复制代码
上述代码的逻辑为:
(1)试用了ManualRestEvent对象创建一个等待句柄,在调用BeginAccept方法前使用Rest方法允许其他线程阻塞;
(2)为了防止在连接完成之前对套接字进行读写 *** 作,务必要在BeginAccept方法后调用WaitOne来让线程进入阻塞状态。
当有连接接入后系统会自动调用会调用回调函数,所以当代码执行到回调函数时说明连接已经成功,并在函数的第一句就调用Set方法让处于等待的线程可以继续执行


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10587855.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存