1.这个网站真的聊天聊天太香了!居然可以免费使用AI聊天工具和“智能AI聊天助手”项目源码!工具工具!源码源码用!聊天聊天
2.澳大利亚人上网使用什么聊天工具?工具工具
3.å¦ä½ç¨VBåè天工å
·
这个网站真的太香了!居然可以免费使用AI聊天工具和“智能AI聊天助手”项目源码!源码源码用hextris源码!聊天聊天!工具工具
在AI技术日益盛行的源码源码用今天,许多开发者都在寻找免费且好用的聊天聊天AI工具。我经过三个月的工具工具探寻,终于发现了一个宝藏网站——云端源想!源码源码用它不仅提供免费的聊天聊天AI聊天工具,还有令人惊喜的工具工具项目源码可以领取,对于编程新手和进阶者来说,源码源码用简直是福音!
这个网站近期已正式上线,我强烈推荐的原因有三:首先,免费AI聊天工具和源码的双重福利,对于需要项目实战和提升技能的开发者来说,就像是及时雨;其次,网站的“微实战”版块提供了针对性强、价格亲民的项目实战项目,如商城支付功能,能快速提升开发效率;再次,智能AI工具中的柯林源码下载问答功能尤其实用,能帮助解决写代码时的难题。
在社区动态中,你可以找到休息时的轻松分享,而在编程体系课部分,虽然与其他网站相似,但云端源想的提炼知识点设计使得学习更加有针对性。在线编程功能则提供了协作开发的平台,而论坛则汇集了高质量的技术文章,供你参考和学习。
总的来说,云端源想网站不仅提供了丰富的免费资源,还通过实用的工具和学习资源,帮助开发者提升技能,是值得推荐的工具平台。别犹豫,赶快通过下方链接去体验这个网站的福利吧!
澳大利亚人上网使用什么聊天工具?
一般外国人都使用MSN,澳大利亚人也不例外
MSN简介:MSN,全称Microsoft Service Network,是微软公司(Microsoft)旗下的门户网站。MSN(门户网站)提供包括必应搜索、文娱、健康、理财、汽车、反注入源码6时尚等,满足了用户在互联网时代的沟通、社交、出行、娱乐等需求。
工作原理:
程序在计算机上的程序被称为“客户端”。它通过Internet连接到MSN Messenger服务器。具体点讲,就是客户端通过服务器和其他的客户端收发消息。一些信息没有处理,仅仅通过服
务器简单传递。例如,当发送一个实时的消息,命令“here is a message, pass it on”被服务器处理了,但消息本身仅通过服务器传递给客户端。
微软已经发布了两种MSN Messenger客户端:MSN Messenger(也叫“.NET Messenger”)和Windows Messenger。微软向大多数Windows用户推荐使用MSN Messenger,包括Windows XP在内,Windows Messenger被绑定在操作系统中。其它人和公司已经写了“第三方”MSN Messenger客户端(比如著名的MSNLite和Amsn等)。MSN Messenger一般被认为是事实上的标准客户端,而其他大多数的客户端从它的行为中确定他们的发展方向,所以它在网上被认为是“官方客户端”。
微软从未公开发布过他们的php手机页源码Messenger服务器端,并且官方客户端不允许你连接非微软的服务器端。
在两台计算机程序间通讯使用的“语言”叫做“协议”。MSN Messenger客户端和服务器端之间消息发送的规则就叫做“MSN Messenger协议”。从一个客户端通过服务器发送消息到另一个客户端的规则在这里被称之为“MSN 客户端协议”。
MSN Messenger协议
MSN Messenger有一系列可在客户端和服务器端发送的命令组成。
MSN Messenger协议已经经历了几次修改。在起草协议的时候(年月),微软的服务器允许客户端使用8,9和版的协议。个人协议版常常是由“MSNP8”,“MSNP9”和“MSNP”写的。
该站点旨在完整定义MSN Messenger协议和MSN Messenger服务器端的特性,使得第三方软件开发者能写自己的程序与网络交互。只有MSNP8被文档化了,还有一些论题可在MSNP9和MSNP中获得。
关于协议的信息可以通过阅读官方IETF草案, 阅读各种源代码,分析数据包,分析官方客户端,写程序。大部分这样的工作由其他一些MSN Messenger研究团体完成的。
MSN客户端协议
MSN客户端协议由在客户端之间发送的消息组成。例如,当你向你朋友说“hello”的时候,客户端将hello作为消息的钢琴块源码js主体发送他们的客户端。
MSN客户端协议比较有组织地发展——一个官方客户端版本将和其他客户端有不同表现,只能猜猜它会有什么谁预想的特性行为(这句翻不出来)。试图已经制定强加一个版本编号系统。到年月为止,已经发现有3个版本的MSN Messenger客户端协议,在本站点叫做“MSNC0” ,“MSNC1”,“MSNC2”。
功能使用:
安装方式
下载安装有两种方式,一种是下载整个程序,一种是下载一个Installer。
注册登陆
拥有 Hotmail或 MSN的电子邮件帐户就可以直接打开msn,点击“登录”按钮,输入电子邮件地址和密码进行登录。如果没有可申请一个Hotmail电子邮件帐户。
添加新的联系人
在 Messenger 主窗口中,单击“我想”下的“添加联系人”。或者,单击“联系人”菜单,然后单击“添加联系人”。选择“通过输入电子邮件地址或登录名创建一个新的联系人”,下一步后输入完整的对方邮箱地址,点“确定”后再“完成”,就成功地输入一个联系人了,这个联系人上网登录MSN后,会收到将他加入的信息。重复上述操作,就可以输入多个联系人。
管理组
在 Messenger 主窗口中,单击“联系人”菜单,指向“对联系人进行排序
”,然后单击“组”,将联系人组织到不同的组中。在联系人名单的“组”视图中,右键单击现有组的名称,或者单击“联系人”菜单,指向“管理组”,就可以创建、重命名或删除组以方便你的查找。
发送即时消息
在联系人名单中,双击某个联机联系人的名字,在“对话”窗口底部的小框中键入消息,单击“发送”。在“对话”窗口底部,可以看到其他人正在键入。当没有人输入消息时,可以看到收到最后一条消息的日期和时间。每则即时消息的长度最多可达个字符(注:低版本MSN可能少于个字符)。保存对话(此功能需要IE6.0或者更高版本)
在主窗口中的“工具”菜单上或“对话”窗口中,单击“选项”,然后选择“消息”选项卡。在“消息记录”下,选中“自动保留对话的历史记录”复选框,单击“确定”后,就可将消息保存在默认的文件夹位置。或者单击“更改”,然后选择要保存消息的位置。
更改和共享背景
在“对话”窗口中的“工具”菜单上,单击“创建背景”。可选:使用一幅来创建背景。单击“浏览”,在计算机中选择一幅,然后单击“打开”。从列表中选择一幅,然后单击“确定”。若要下载更多背景,请转到 Messenger 背景网站。 共享背景时,会收到一份邀请,其中带有要共享背景的缩略图预览。如果对方接受了该邀请,则 Messenger 会自动下载该背景并将其显示在“对话”窗口中。
添加、删除或修改自定义图释
在“对话”窗口中的“工具”菜单上,单击“创建图释”就可以添加、删除或修改自定义图释。或者选择“对话”窗口上的“选择图释”按钮。
更改或隐藏显示
在“对话”窗口中的“工具”菜单上,单击“更改显示”。或者单击“对话框”下的箭头,选择“更改显示”。从列表中选择一幅,然后单击“确定”。或者单击“浏览”,在计算机上选择一幅,然后单击“打开”。
设置联机状态
在 Messenger 主窗口顶部,单击名字,然后单击最能准确描述您状态的选项。或者单击“文件”菜单,指向“我的状态”,然后单击最能准确描述状态的选项。
阻止某人看见或联系
在 Messenger 主窗口中,右键单击要阻止的人的名字,然后单击“阻止”。被阻止的联系人并不知道已被阻止,只是显示为脱机状态。
更改名称的显示方式
在主窗口中的“工具”菜单上,单击“选项”,然后选择“个人信息”选项卡。或者在Messenger主窗口中右键单击您的名字,然后单击“个人设置”。在“我的显示名称”框中,键入新名称,单击“确定”。
使用网络摄像机进行对话
若要在 MSN Messenger 中发送网络摄像机视频,必须在计算机上连接了摄像机。在对话期间单击“网络摄像机”图标。或者,在主窗口中单击“操作”菜单,单击“开始网络摄像机对话”,选择要向其发送视频的联系人的名称,然后单击“确定”。若要进行双向的网络摄像机对话,则两位参与者必须都安装了网络摄像机并且必须邀请对方。
语音对话
可以在 Messenger 主窗口中启动音频对话或者在对话期间中添加音频。 在 Messenger 主窗口中,单击“操作”菜单,单击“开始音频对话”,然后选择要与其进行对话的联系人。 或者,在对话期间,单击“对话”窗口顶部的“音频”。使用“对话”窗口右侧的音量控制滑块来调整通过麦克风输入的音量以及从扬声器中输出的音量。
发送文件和照片
在 Messenger 主窗口中,右键单击某个联机联系人的名字,然后单击“发送文件或照片”。在“发送文件”对话框中,找到并单击您想要发送的文件,然后单击“打开”。 此外,直接在下方“输入即时消息”的窗口内“粘贴”文件也可以进行发送。
建立和加入群
Windows Live 群是一个完美的沟通地
方,除了在Messenger上大家群聊(上限人)在群网站上还可以分享相册,文件,或进行类似留言板的讨论。通过共享的日历随时与最近更新源随时与群友保持同步。并且创建一个群也是相当简单的事,只需从您的Windows Live联系人列表选择邀请他人加入即可。
移动MSN
通过手机MSN,可以享受到Live提供的免费服务,不仅提供即时聊天服务,还为您提供了hotmail,Spaces,门户资讯等一系列精彩的互联网服务。最新版手机MSN更将全面同步PC功能, 支持本地搜索。
å¦ä½ç¨VBåèå¤©å·¥å ·
winsockä½¿ç¨ Winsock æ§ä»¶ å©ç¨ WinSock æ§ä»¶å¯ä»¥ä¸è¿ç¨è®¡ç®æºå»ºç«è¿æ¥ï¼å¹¶éè¿ç¨æ·æ°æ®ææ¥åè®® (UDP)æè ä¼ è¾æ§å¶åè®® (TCP)è¿è¡æ°æ®äº¤æ¢ãè¿ä¸¤ç§åè®®é½å¯ä»¥ç¨æ¥å建客æ·ä¸æå¡å¨åºç¨ç¨åºãä¸ Timer æ§ä»¶ç±»ä¼¼ï¼WinSock æ§ä»¶å¨è¿è¡æ¶æ¯ä¸å¯è§çãå¯è½çç¨é å建æ¶éç¨æ·ä¿¡æ¯ç客æ·ç«¯åºç¨ç¨åºï¼å¹¶å°æ¶éçä¿¡æ¯åéå°æä¸å¤®æå¡å¨ã
å建ä¸ä¸ªæå¡å¨åºç¨ç¨åºï¼ä½ä¸ºå¤ä¸ªç¨æ·çæ°æ®çæ±å ¥ç¹ã
å建âè天âåºç¨ç¨åºã éæ©é讯åè®® å¨ä½¿ç¨ WinSock æ§ä»¶æ¶ï¼é¦å éè¦èè使ç¨ä»ä¹åè®®ãå¯ä»¥ä½¿ç¨çåè®®å æ¬ TCP å UDPã两ç§åè®®ä¹é´çéè¦åºå«å¨äºå®ä»¬çè¿æ¥ç¶æï¼ TCP åè®®æ§ä»¶æ¯åºäºè¿æ¥çåè®®ï¼å¯ä»¥å°å®åçµè¯ç³»ç»ç¸æ¯ãå¨å¼å§æ°æ®ä¼ è¾ä¹åï¼ç¨æ·å¿ é¡»å 建ç«è¿æ¥ã
UDP åè®®æ¯ä¸ç§æ è¿æ¥åè®®ï¼ä¸¤å°è®¡ç®æºä¹é´çä¼ è¾ç±»ä¼¼äºä¼ éé®ä»¶ï¼æ¶æ¯ä»ä¸å°è®¡ç®æºåéå°å¦ä¸å°è®¡ç®æºï¼ä½æ¯ä¸¤è ä¹é´æ²¡ææç¡®çè¿æ¥ãå¦å¤ï¼åæ¬¡ä¼ è¾çæ大æ°æ®éåå³äºå ·ä½çç½ç»ã å°åºéæ©åªä¸ç§åè®®é常æ¯ç±éè¦å建çåºç¨ç¨åºå³å®çãä¸é¢çå 个é®é¢å°æå©äºéæ©éå®çåè®®ï¼ å¨æ¶åæ°æ®çæ¶åï¼åºç¨ç¨åºæ¯å¦éè¦å¾å°å®¢æ·ç«¯æè æå¡å¨ç确认信æ¯ï¼å¦æéè¦ï¼ä½¿ç¨ TCP åè®®ï¼å¨æ¶åæ°æ®ä¹åå 建ç«æç¡®çè¿æ¥ã
æ°æ®éæ¯å¦ç¹å«å¤§ï¼ä¾å¦å¾è±¡ä¸å£°é³æ件ï¼ï¼å¨è¿æ¥å»ºç«ä¹åï¼TCP åè®®å°ç»´æ¤è¿æ¥å¹¶ç¡®ä¿æ°æ®çå®æ´æ§ãä¸è¿ï¼è¿ç§è¿æ¥éè¦æ´å¤ç计ç®èµæºï¼å èæ¯æ¯è¾âæè´µâçã
æ°æ®åéæ¯é´æçï¼è¿æ¯å¨ä¸ä¸ªä¼è¯å ï¼ä¾å¦ï¼å¦æåºç¨ç¨åºå¨æ个任å¡å®æçæ¶åéè¦éç¥æ个计ç®æºï¼UDP åè®®æ¯æ´éå®çãUDP åè®®éååéå°éçæ°æ®ã åè®®ç设置 å¨è®¾è®¡æ¶ï¼å¯ä»¥æå¦ä¸æ¹å¼è®¾ç½®åºç¨ç¨åºä½¿ç¨çåè®®ï¼å¨âå±æ§âçªå£ä¸åå»âåè®®âï¼ç¶åéæ© sckTCPProtocol æè sckUDPProtocolãä¹å¯ä»¥ä½¿ç¨ç¨åºä»£ç æ¥è®¾ç½® Protocol å±æ§ï¼å¦ä¸æ示ï¼Winsock1.Protocol = sckTCPProtocol ç¡®å®è®¡ç®æºçå称 å¨ä¸è¿ç¨è®¡ç®æºç¸è¿æ¥çæ¶åï¼éè¦ç¥éå®ç IP å°åæè å®çâ好å¬çååâãIP å°åæ¯ä¸ä¸²æ°åï¼æ¯ä¸ä¸ªæ°å为ä¸ç»ï¼ä¸é´ç¨ç¹éå¼ï¼å½¢å¦ xxx.xxx.xxx.xxxï¼ãé常ï¼ææè®°ä½çæ¯è®¡ç®æºçâ好å¬çååâãè¦ç¡®å®è®¡ç®æºçååï¼è¯·æç §ä»¥ä¸æ¥éª¤æ§è¡ï¼ å¨è®¡ç®æºçâä»»å¡æ âä¸ï¼åå»âå¯å¨âã
å¨â设置â项ä¸ï¼åå»âæ§å¶é¢æ¿âã
åå»âç½ç»âå¾æ ã
åå»âæ è¯âé项å¡ã
å¨â计ç®æºå称âæ¡ä¸å¯ä»¥æ¾å°è®¡ç®æºçå称ã ä¸é¢æ¾å°ç计ç®æºå称å¯ä»¥ä½ä¸º RemoteHost å±æ§çå¼ãTCP è¿æ¥åæ¥ å¦æåºç¨ç¨åºè¦ä½¿ç¨ TCP åè®®ï¼é£ä¹é¦å å¿ é¡»å³å®åºç¨ç¨åºæ¯æå¡å¨è¿æ¯å®¢æ·ç«¯ãå¦æè¦å建ä¸ä¸ªæå¡å¨ç«¯ï¼é£ä¹åºç¨ç¨åºéè¦âçå¬âæå®ç端å£ãå½å®¢æ·ç«¯æåºè¿æ¥è¯·æ±æ¶ï¼æå¡å¨ç«¯è½å¤æ¥å请æ±å¹¶å»ºç«è¿æ¥ãå¨è¿æ¥å»ºç«ä¹åï¼å®¢æ·ç«¯ä¸æå¡å¨ç«¯å¯ä»¥èªç±å°äºç¸é讯ãä¸åæ¥éª¤å建ä¸ä¸ªé常ç®åçæå¡å¨ï¼è¦å建ä¸ä¸ª TCP æå¡å¨ï¼è¯·æç §ä»¥ä¸æ¥éª¤æ§è¡ï¼ å建æ°ç Standard EXE å·¥ç¨ã
å°ç¼ºççªä½çå称æ¹ä¸º frmServerã
å°çªä½çæ é¢æ¹ä¸ºâTCP æå¡å¨âã
å¨çªä½ä¸æ¾å ¥ä¸ä¸ª Winsock æ§ä»¶ï¼å¹¶å°å®çååæ¹ä¸º tcpServerã
å¨çªä½ä¸æ·»å 两个 TextBox æ§ä»¶ãå°ç¬¬ä¸ä¸ªå½å为 txtSendDataï¼ç¬¬äºä¸ªä¸º txtOutputã
为çªä½æ·»å å¦ä¸ç代ç ã Private Sub Form_Load() 'å° LocalPort å±æ§è®¾ç½®ä¸ºä¸ä¸ªæ´æ°ã 'ç¶åè°ç¨ Listen æ¹æ³ã tcpServer.LocalPort = tcpServer.Listen frmClient.Show 'æ¾ç¤ºå®¢æ·ç«¯ççªä½ã End Sub Private Sub tcpServer_ConnectionRequest _ (ByVal requestID As Long) 'æ£æ¥æ§ä»¶ç State å±æ§æ¯å¦ä¸ºå ³éçã 'å¦æä¸æ¯ï¼ 'å¨æ¥åæ°çè¿æ¥ä¹åå å ³éæ¤è¿æ¥ã If tcpServer.State <> sckClosed Then _ tcpServer.Close 'æ¥åå ·æ requestID åæ°ç 'è¿æ¥ã tcpServer.Accept requestID End Sub Private Sub txtSendData_Change() 'å为 txtSendData ç TextBox æ§ä»¶ä¸ 'å å«äºè¦åéçæ°æ®ãå½ç¨æ·å¾ææ¬æ¡ä¸ 'é®å ¥æ°æ®æ¶ï¼ä½¿ç¨ SendData æ¹æ³ 'åéè¾å ¥çå符串ã tcpServer.SendData txtSendData.Text End Sub Private Sub tcpServer_DataArrival _ (ByVal bytesTotal As Long) '为è¿å ¥çæ°æ®å£°æä¸ä¸ªåéã 'è°ç¨ GetData æ¹æ³ï¼å¹¶å°æ°æ®èµäºå为 txtOutput 'ç TextBox ç Text å±æ§ã Dim strData As String tcpServer.GetData strData txtOutput.Text = strData End Sub ä¸é¢çæ¥éª¤å建äºä¸ä¸ªç®åçæå¡å¨åºç¨ç¨åºã为äºä½¿å®è½å¤å·¥ä½ï¼è¿å¿ 须为å®å建ä¸ä¸ªå®¢æ·ç«¯çåºç¨ç¨åºãè¦å建 TCP 客æ·ç«¯ï¼è¯·æç §ä»¥ä¸æ¥éª¤æ§è¡ï¼ å¨å·¥ç¨ä¸æ·»å ä¸ä¸ªæ°ççªä½ï¼å°å ¶å½å为 frmClientã
å°çªä½çæ é¢æ¹ä¸ºâTCP Clientâã
å¨çªä½ä¸æ·»å ä¸ä¸ª Winsock æ§ä»¶ï¼å¹¶å°å ¶å½å为 tcpClientã
å¨ frmClient ä¸æ·»å 两个 TextBox æ§ä»¶ãå°ç¬¬ä¸ä¸ªå½å为 txtSendï¼ç¬¬äºä¸ªä¸º txtOutputã
å¨çªä½ä¸æ¾ä¸ä¸ª CommandButton æ§ä»¶ï¼å¹¶å°å ¶å½å为 cmdConnectã
å° CommandButton æ§ä»¶çæ é¢æ¹ä¸º Connectã
å¨çªä½ä¸æ·»å å¦ä¸ç代ç ã éç¹ å¿ é¡»å° RemoteHost å±æ§å¼ä¿®æ¹ä¸ºæ¨ç计ç®æºçååãPrivate Sub Form_Load() 'Winsock æ§ä»¶çåå为 tcpClientã '注æï¼è¦æå®è¿ç¨ä¸»æºï¼å¯ä»¥ä½¿ç¨ ' IP å°åï¼ä¾å¦ï¼"..1.1"ï¼ï¼ä¹å¯ä»¥ä½¿ç¨ '计ç®æºçâ好å¬çååâå¦ä¸æ示ã tcpClient.RemoteHost = "RemoteComputerName" tcpClient.RemotePort = End Sub Private Sub cmdConnect_Click() 'è°ç¨ Connect æ¹æ³ï¼åå§åè¿æ¥ã tcpClient.Connect End Sub Private Sub txtSendData_Change() tcpClient.SendData txtSend.Text End Sub Private Sub tcpClient_DataArrival _ (ByVal bytesTotal As Long) Dim strData As String tcpClient.GetData strData txtOutput.Text = strData End Sub ä¸é¢ç代ç å建äºä¸ä¸ªç®åç客æ·/æå¡å¨æ¨¡å¼çåºç¨ç¨åºãæ们å¯ä»¥å°ä¸¤è é½è¿è¡èµ·æ¥ï¼è¿è¡å·¥ç¨ï¼ç¶ååå»âè¿æ¥âãå¨ä¸¤ä¸ªçªä½ä¹ä¸ç txtSendData ææ¬æ¡ä¸é®å ¥ææ¬ï¼å¯ä»¥çå°åæ ·çæåå°åºç°å¨å¦ä¸ä¸ªçªä½ç txtOutput ææ¬æ¡ä¸ãæ¥åå¤ä¸ªè¿æ¥è¯·æ± ä¸é¢è®¾è®¡çåºæ¬æå¡å¨åªè½æ¥åä¸ä¸ªè¿æ¥è¯·æ±ãéè¿å建æ§ä»¶æ°ç»ï¼ä½¿ç¨ä¸ä¸ªæ§ä»¶ä¹å¯ä»¥åæ¶æ¥åå¤ä¸ªè¿æ¥è¯·æ±ãå©ç¨è¿ç§æ¹æ³ï¼ä¸éè¦å ³éè¿æ¥ï¼èåªéå建æ°çæ§ä»¶å®ä¾ï¼éè¿è®¾ç½®å ¶ç´¢å¼å±æ§ï¼ï¼ç¶åå¨æ°çå®ä¾ä¸è°ç¨ Accept æ¹æ³ãä¸é¢ç代ç åå®å为 sckServer ççªä½ä¸æä¸ä¸ª Winsock æ§ä»¶ï¼å®ç Index å±æ§è¢«è®¾ç½®ä¸º 0ï¼å æ¤æ§ä»¶æ¯æ§ä»¶æ°ç»çä¸é¨åãå¨å£°æé¨åï¼å£°æäºä¸ä¸ªæ¨¡å级çåé intMaxãå¨çªä½ç Load äºä»¶ä¸ï¼intMax 被设置为 0ï¼æ°ç»ä¸ç¬¬ä¸ä¸ªæ§ä»¶ç LocalPort å±æ§è¢«è®¾ç½®ä¸º ãç¶åè°ç¨æ§ä»¶ç Listen æ¹æ³ï¼ä½¿ä¹æ为âçå¬âæ§ä»¶ãå¨è¿æ¥è¯·æ±å°è¾¾æ¶ï¼ä»£ç å°æ£æµ Index æ¯å¦ä¸º 0ï¼âçå¬âæ§ä»¶çå¼ï¼ãå¦æ为 0ï¼çå¬æ§ä»¶å°å¢å intMax çå¼ï¼å¹¶ä½¿ç¨è¯¥å·ç æ¥å建æ°çæ§ä»¶å®ä¾ãç¶åï¼ä½¿ç¨æ°çæ§ä»¶å®ä¾æ¥åè¿æ¥è¯·æ±ãPrivate intMax As Long Private Sub Form_Load() intMax = 0 sckServer(0).LocalPort = sckServer(0).Listen End Sub Private Sub sckServer_ConnectionRequest _ (Index As Integer, ByVal requestID As Long) If Index = 0 Then intMax = intMax + 1 Load sckServer(intMax) sckServer(intMax).LocalPort = 0 sckServer(intMax).Accept requestID Load txtData(intMax) End If End Sub UDP åæ¥ å建 UDP åºç¨ç¨åºæ¯å建 TCP åºç¨ç¨åºè¿è¦ç®åï¼å 为 UDP åè®®ä¸éè¦æ¾å¼çè¿æ¥ãå¨ä¸é¢ç TCP åºç¨ç¨åºä¸ï¼ä¸ä¸ª Winsock æ§ä»¶å¿ é¡»æ¾å¼å°è¿è¡âçå¬âï¼å¦ä¸ä¸ªå¿ é¡»ä½¿ç¨ Connect æ¹æ³åå§åè¿æ¥ãUDP åè®®ä¸éè¦æ¾å¼çè¿æ¥ãè¦å¨ä¸¤ä¸ªæ§ä»¶ä¸é´åéæ°æ®ï¼éè¦å®æ以ä¸çä¸æ¥ï¼å¨è¿æ¥çåæ¹ï¼ï¼ å° RemoteHost å±æ§è®¾ç½®ä¸ºå¦ä¸å°è®¡ç®æºçå称ã
å° RemotePort å±æ§è®¾ç½®ä¸ºç¬¬äºä¸ªæ§ä»¶ç LocalPort å±æ§ã
è°ç¨ Bind æ¹æ³ï¼æå®ä½¿ç¨ç LocalPortãï¼ä¸é¢å°è¯¦ç»å°è®¨è®ºè¯¥æ¹æ³ãï¼ å 为两å°è®¡ç®æºçå°ä½å¯ä»¥çæâå¹³ççâï¼è¿ç§åºç¨ç¨åºä¹è¢«ç§°ä¸ºç¹å°ç¹çã为äºå ·ä½è¯´æè¿ä¸ªé®é¢ï¼ä¸é¢å°å建ä¸ä¸ªâè天âåºç¨ç¨åºï¼ä¸¤ä¸ªäººå¯ä»¥éè¿å®è¿è¡å®æ¶ç交è°ãè¦å建ä¸ä¸ª UDP ä¼ä¼´ï¼è¯·æç §ä»¥ä¸æ¥éª¤æ§è¡ï¼ å建ä¸ä¸ªæ°ç Standard EXE å·¥ç¨ã
å°ç¼ºçççªä½çå称修æ¹ä¸º frmPeerAã
å°çªä½çæ é¢ä¿®æ¹ä¸ºâPeer Aâã
å¨çªä½ä¸æ¾å ¥ä¸ä¸ª Winsock æ§ä»¶ï¼å¹¶å°å ¶å½å为 udpPeerAã
å¨âå±æ§â页ä¸ï¼åå»âåè®®â并å°å议修æ¹ä¸º UDPProtocolã
å¨çªä½ä¸æ·»å 两个 TextBox æ§ä»¶ãå°ç¬¬ä¸ä¸ªå½å为 txtSendï¼ç¬¬äºä¸ªå½å为 txtOutputã
为çªä½å¢å å¦ä¸ç代ç ã Private Sub Form_Load() 'æ§ä»¶çåå为 udpPeerA With udpPeerA 'éç¹:å¿ é¡»å° RemoteHost çå¼ 'ä¿®æ¹ä¸ºè®¡ç®æºçååã .RemoteHost= "PeerB" .RemotePort = 'è¿æ¥ç端å£å·ã .Bind 'ç»å®å°æ¬å°ç端å£ã End With frmPeerB.Show 'æ¾ç¤ºç¬¬äºä¸ªçªä½ã End Sub Private Sub txtSend_Change() 'å¨é®å ¥ææ¬æ¶ï¼ç«å³å°å ¶åéåºå»ã udpPeerA.SendData txtSend.Text End Sub Private Sub udpPeerA_DataArrival _ (ByVal bytesTotal As Long) Dim strData As String udpPeerA.GetData strData txtOutput.Text = strData End Sub è¦å建第äºä¸ª UDP ä¼ä¼´ï¼è¯·æç §ä»¥ä¸æ¥éª¤æ§è¡ï¼ å¨å·¥ç¨ä¸æ·»å ä¸ä¸ªæ åçªä½ã
å°çªä½çååä¿®æ¹ä¸º frmPeerBã
å°çªä½çæ é¢ä¿®æ¹ä¸ºâPeer Bâã
å¨çªä½ä¸æ¾å ¥ä¸ä¸ª Winsock æ§ä»¶ï¼å¹¶å°å ¶å½å为 udpPeerBã
å¨âå±æ§â页ä¸ï¼åå»âåè®®â并å°å议修æ¹ä¸ºâUDPProtocolâã
å¨çªä½ä¸æ·»å 两个 TextBox æ§ä»¶ãå°ç¬¬ä¸ä¸ªå½å为 txtSendï¼ç¬¬äºä¸ªå½å为 txtOutputã
å¨çªä½ä¸æ·»å å¦ä¸ç代ç ã Private Sub Form_Load() 'æ§ä»¶çåå为 udpPeerBã With udpPeerB 'éç¹:å¿ é¡»å° RemoteHost çå¼æ¹ä¸º '计ç®æºçååã .RemoteHost= "PeerA" .RemotePort = 'è¦è¿æ¥ç端å£ã .Bind 'ç»å®å°æ¬å°ç端å£ä¸ã End With End Sub Private Sub txtSend_Change() 'å¨é®å ¥åç«å³åéææ¬ã udpPeerB.SendData txtSend.Text End Sub Private Sub udpPeerB_DataArrival _ (ByVal bytesTotal As Long) Dim strData As String udpPeerB.GetData strData txtOutput.Text = strData End Sub å¦æè¦è¯ç¨ä¸é¢çä¾åï¼æ F5 é®è¿è¡å·¥ç¨ï¼ç¶åå¨ä¸¤ä¸ªçªä½ç txtSend TextBox ä¸åå«é®å ¥ä¸äºææ¬ãé®å ¥çæåå°åºç°å¨å¦ä¸ä¸ªçªä½ç txtOutput TextBox ä¸ãå ³äº Bind æ¹æ³ å¨ä¸é¢ç代ç ä¸ï¼å¨å建 UDP åºç¨ç¨åºæ¶è°ç¨äº Bind æ¹æ³ï¼è¿æ¯å¿ é¡»çãBind æ¹æ³çä½ç¨æ¯ä¸ºæ§ä»¶âä¿çâä¸ä¸ªæ¬å°ç«¯å£ãä¾å¦ï¼å¦æå°æ§ä»¶ç»å®å° å·ç«¯å£ï¼é£ä¹å ¶å®åºç¨ç¨åºå°ä¸è½ä½¿ç¨è¯¥ç«¯å£è¿è¡âçå¬âã该æ¹æ³é»æ¢å ¶å®åºç¨ç¨åºä½¿ç¨åæ ·ç端å£ãBind æ¹æ³ç第äºä¸ªåæ°æ¯ä»»éçãå¦æ计ç®æºä¸åå¨å¤ä¸ªç½ç»éé å¨ï¼å¯ä»¥ç¨ LocalIP åæ°æ¥æå®ä½¿ç¨åªä¸ä¸ªéé å¨ãå¦æ忽ç¥è¯¥åæ°ï¼æ§ä»¶ä½¿ç¨çå°æ¯è®¡ç®æºä¸âæ§å¶é¢æ¿â设置ä¸âç½ç»âæ§å¶é¢æ¿å¯¹è¯æ¡ä¸ååºç第ä¸ä¸ªéé å¨ãå¨ä½¿ç¨ UDP åè®®çæ¶åï¼å¯ä»¥ä»»æå°æ¹å RemoteHost å RemotePort å±æ§ï¼åæ¶å§ç»ä¿æç»å®å¨åä¸ä¸ª LocalPort ä¸ãTCP åè®®ä¸æ¤ä¸åï¼å¨æ¹å RemoteHost å RemotePort å±æ§ä¹åï¼å¿ é¡»å å ³éè¿æ¥ã