在Delphi中,用ServerSocket与ClientSocket组件,建立TCP/IP通信非常容易。
1、创建2个应用程序,一个是Server,另一个是Client。
2、Server程序的窗体上放置ServerSocket组件,并设置其port属性(如:设置为5000),并将Active属性设置为True;
3、Client程序的窗体上放置ClientSocket组件,也设置其port属性,与ServerSocket组件的port属性相同,也设置为5000;设置Adress属性为Server程序所在的机器的IP地址。如果Server程序与Client程序在同一台机器上,则设置Address 为127001 。
再放一个命令按钮,在OnClick事件中添加一行事件处理程序:
ClientSocket1Open;
在OnConnect事件中添加事件处理程序:
procedure TForm1ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1linesadd('已经建立连接');
end;
4、Server端:利用ServerSocket1socketconnections[i]sendtext('')
发送文本。在OnClientRead事件中接收Client端发送来的信息:
procedure TForm1ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1linesadd(socketReceiveText);
end;
5、Client端:利用ClientSocket1SocketSendText('')
发送文本。在OnRead事件中接收Server端发送来的信息:
procedure TForm1ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1linesadd(socketReceiveText);
end;
行了,可以运行了。目前的项目中使用了node,作为一个简单的后端服务,随着承担着越来越多的线上业务的服务,就要求了服务端的稳定性,而其中最重要的一点就是服务保活。有进程终止后自动重启的能力。
forever是一个简单的命令行工具,他能确保一个给定的脚本持续运行。forever完全基于命令行 *** 作,在forever进程之下,创建node的子进程,通过monitor监控node子进程的运行情况,一旦文件更新,或者进程挂掉,forever会自动重启node服务器,确保应用正常运行。
所以就看一下forever的项目吧。主要的进程控制方面的代码地址。
核心就是使用了node api 中的 spawn,创建子进程,这个子进程就是我们真正的需要运行的node端服务。
父子进程的通信核心就是为了保活,主要就是监听了子进程,也就是需要被守护进程的exit事件
逻辑很简单,分别两个场景,一个是希望子进程不要再启动,一般就是外部控制杀死的;一个是意外退出后的重启,此处与一个spinning值的判断,也就是在退出后存在一个重启的时间间隔。
message事件来监听,用send方法来发送事件,父子进程通信就可以用做外部的控制的实现了。这里我们还需要注意一个细节,就是node后端服务运行中会输出很多的日志,此时放在子进程中的控制台输出,如果希望暴露出来就可以使用optionsstdio属性。
保活的场景很多,这里可以使用forever库来处理,配合监控和日志功能,更好的保证线上环境的稳定。post发送JSON数据(字符串、数组、字典、自定义对象)给服务器
触发发送的方法
这次Demo是通过点击屏幕触发发送数据给服务器事件
前提需要开启本地模拟服务器
发送JSON字符串
发送字典给服务器
发送数组给服务器
发送oc对象给服务器
先讲对象转换为字典
通过系统提供的JSON解析类进行序列化
觉得不错请点赞支持,欢迎留言或进我的个人群855801563领取架构资料专题目合集90期、BATJTMD大厂JAVA面试真题1000+,本群专用于学习交流技术、分享面试机会,拒绝广告,我也会在群内不定期答题、探讨分类: 电脑/网络 >> 软件
问题描述:
emule和emule有什么区别吗,我看到有人在网上骂VAGAA,是怎么回事?
解析:
VAGAA是篡改emule的客户端软件的产物,其最大危害就是大量的、无节制的向emule服务器发送链接请求,以达到加快速度的目的,但是这样给服务器增加了不必要的负担,而且严重损坏了emule的分享原则,特别是由于VAgaa的出现导致了各国服务器对中国用户的 (不论你是不是使用Vagaa,只要是中国用户)外国服务器甚至禁止中国用户登录,就是这样的危害。
vagaa已经被封了!
目前使用VeryCD版本的电驴软件的时候,连接服务器的时候会出现下面的信息:
“连接到本服务器的中国用户请注意:大多数中国用户使用的某种电骡的修改版本正在向服务器滥发信息。这种有问题的电骡客户端不断的向服务器提交自动查询,这给服务器增加了很大负担。请您使用电骡的官方版本,否则我们只好被迫封掉所有的中国用户,使你们无法连接到本服务器。请不要让这样的事情发生。: (如果你已经在使用047a的官方版本,或者基于047a的修改版本,请忽略这条信息。祝你开心。:) ”
事件的起因是Vagaa这个软件,这个软件本身基于开源软件修改的,但是抹去了原作者的所有名字,标榜为自行开发,并拒绝开放源代码,Vagaa的软件设计上,疯狂向服务器发送查询请求,从而影响了eMule服务器的性能,拖累了所有用户的正常使用。DonkeyServer的管理员认为,正在使用 Vagaa的1%的用户消耗了80%的CPU/带宽,如果他们继续使用这种软件的话,他们就得准备找个别的服务器了。因此也就有了上面的那段文字信息。
我个人虽然使用BT这种软件多一些,不过电驴的资源往往比BT更多一些,很久以前也用过电驴这样的软件下载一些不好找的资源,Vagaa这样的软件从设计上来讲,是为了用户下载方便而大量消耗服务器资源,和以前的迅雷事件一样,最终用户可能很喜欢这样的软件,但这样的软件不会得到站长们的认同,最终对其封杀也是可想而知的。
这也验证了互联网的一个潜规则:所得到和所付出的比例应该是相等的。依靠投机取巧的方法获得不应该的利益,而损害了其他人的利益,将违背这个网络规则,最终会受到应有的报应。
最终用户是不知道这其中的利益关系,普通网民是没有服务器资源的,他们考虑的只有自己的利益,而掌握服务器和带宽资源的人,需要考虑更多的事情,不仅仅是一个网民的利益,而是大多数网民的总体利益,以及自己的利益。所以网民们在幻想着获取带宽的时候,也应该考虑付出自己的带宽。如果某些投机份子一味地讨好网民,想依靠他们的舆论来提高自己的声望,那么即使得到网民的支持,最终也会被业内所排斥,得到类似被封的下场。
下面是VeryCD的官方论坛上关于这次事件的说明,可以由此了解一些该事件的来龙去脉。
原文标题:DonkeyServer和BigBang酝酿封杀中国用户事件,就是Vagaa惹的祸
原文地址:boardverycd/t366722
原文作者:pennyliu123
这几天情绪一直很激动,很愤怒,但让我很欣慰的是关于Vagaa所作作为的消息已经以很快的速度传播开了,我想这是我们净化eMule队伍的第一步。
但是我想,为了维护国内eMule用户的声誉,为了 不道德的Vagaa软件,目前我们所能采取的手段还是不够的,我个人经过思考,提出以下的建议,供大家参考:
1、普通的eMule用户,除了劝说身边的朋友不要用Vagaa,到各大相关论坛广为宣传Vagaa的危害性之外,还可以在自己的用户名后面打个括号,写上反对Vagaa的内容。我个人现在的用户名后面写的是:坚决 Vagaa,Vagaa是中国P2P软件的耻辱!
2、掌握一定话语权的朋友,比如网站的站长,希望大家能够联合起来,共同维护一个纯净的P2P世界。群众运动固然重要,高层协调我认为也是必不可少。如果VC和中国驴等eMule权威网站能够以比较正式的方式,以严谨的态度把Vagaa违反游戏规则的行为及其危害进行总结,公之于众,尤其是有针对性的向一些影响较大的门户下载网站进行宣传,相信可以对Vagaa的传播进行遏制。我由衷希望在这件事上不要因为门户观念影响了大局,各扫门前雪的做法只会给 Vagaa这样不讲基本网络道德的软件可乘之机。
3、掌握黑客技术的朋友,我个人希望能够冷静对待此事。我不主张对Vagaa或中国电骡的网站进行攻击,这样只会给他们找到一个可以下的台阶,他们可以把自己摆在受害者的位置来编织谎言,或许能够欺骗更多善良的人。如果真的有心为 Vagaa作出贡献,不妨从技术上进一步搜集Vagaa作恶的证据,让它们再也无法狡辩。
我相信,只要大家齐心协力,Vagaa不可能再像以前那样为所欲为。
或许有些朋友还不知道Vagaa到底怎么回事,我可以归纳一下他们存在的主要问题:
1、上传和下载严重不对等,违背P2P精神。已经有许多朋友测试过,Vagaa只有在下载的时候才会进行有限的上传,而且上传数据量远远少于下载数据量,这个跟把bt限速为1k,下完就跑的做法没什么两样,这也就是大家通常说的吸血骡。
2、违背GPL协议,不开放源代码。Vagaa是在一个遵循GPL协议开放源代码的软件Shareaza的基础上进行修改的,根据GPL协议的要求,对他人的开源软件进行修改后发布新软件,必须也要同步开放源代码。而Vagaa始终拒绝开放源码,别人永远不知道他们在程序里写了什么,捆绑了什么,只能任凭他们把自己吹得天花乱坠。
3、在连接服务器和使用服务器进行搜索方面的设计有严重的缺陷,极大加重服务器负担,这也是引发此次“封杀”事件的焦点。Vagaa对目前流行的服务器,如DonkeyServerNO1,BigBang9等进行特别照顾,一经连接成功就频繁对服务器进行检索,如果连接不成功则将频繁进行连接,直至服务器不堪重负。可笑的是,Vagaa方面拒不承认这是他们的软件缺陷,还造出了一个“血崩效应”的新鲜名词。
4、拒绝表明软件真实版本,伪装成其它软件版本以欺骗服务器和用户。Vagaa曾经以本名进入过P2P世界,但是由于其“吸血”行为,很快就被包括eMule Extreme等各大Mod予以屏蔽。Vagaa为了继续生存,一度采用了eMule pat v040这个虚假的版本号,这个版本流传很广,并直接引发了此次封杀事件。不仅如此,最近较新版本的Vagaa索性把版本信息伪装成eMule 047a,这个版本一旦流行,势必造成更严重的混淆,对真正的eMule 047a用户将造成更大的威胁。
5、通过屏蔽他人的标签,同时伪造自己的标签来达到不正当竞争的目的。新版Vagaa的用户,用户名前面会自动加上[CHN][VeryCD]的标签,试图把自己假扮成VC版eMule的用户,然而,当它连接到VC版eMule用户时,却会自动屏蔽掉对方用户名称中的[VeryCD]标签。很明显, Vagaa不希望用户知道世界上还有VeryCD这个网站,因为Vagaa和它的合作站点“中国电骡”网站上公布的eMule资源绝大多数都是直接从 VeryCD网站上抄过去的!
Vagaa存在的问题也许还不仅这些,但是仅凭这些,相信大家已经可以对它作出自己的评价了!
这个帖子写到现在,我想我已经尽了自己的努力,接下来的事情要靠大家的参与,一个人的力量始终是有限的。我想要再说一下的是,这个帖子里的观点仅代表我自己,在写的时候我并没有想到帖子会置顶。虽然现在VC的管理层还没有人对此提出异议,但我想这个帖子有可能会给某些人提供口实,给VC带来一些消极的影响。如果VC管理层觉得有必要取消置顶,我个人对此没有任何意见,因为我要说的话,大家已经看到,我已经做了自己作为eMule的用户所应当做的事情了。
根据网友的测试,2006812发布的最新版Vagaa已经把版本号伪装为047a,这一变化的目的已经不言而喻了,Vagaa希望通过这个版本号进一步迷惑服务器管理者,把自己混进真正基于047a的MOD队伍中。这个版本一旦传播开来,后果不堪设想!惟有通过大家的努力,让违背P2P精神的不道德软件彻底退出P2P世界!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)