社区
Delphi
帖子详情
关于socket通信的难题
proshyrain
2000-08-11 06:19:00
我用TServerSocket、TClientSocket通信,一个Server要连接多个Client,我怎样向所有Client发送与ClientIP有关的不同信息,怎样区分这些连接呢?
Connection属性要求一个连接值,但他是动态变化的(当一个tcp连接失掉时,在他之后的所有连接的Connection序号都会减一)!!!
...全文
230
7
打赏
收藏
关于socket通信的难题
我用TServerSocket、TClientSocket通信,一个Server要连接多个Client,我怎样向所有Client发送与ClientIP有关的不同信息,怎样区分这些连接呢? Connection属性要求一个连接值,但他是动态变化的(当一个tcp连接失掉时,在他之后的所有连接的Connection序号都会减一)!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
netsong
2000-08-20
打赏
举报
回复
那就先让client请求吧, 这样一问一答就不用列表了
shprog
2000-08-16
打赏
举报
回复
能不能用其他的控件和其他的方法实现呢?
geyuan
2000-08-12
打赏
举报
回复
DELPHI的socket控件在设计上有问题,特别是当client端突然退出时,server会触发一个error,使用起来十分不方便,
可以直接用winsock底层编写
那你可以控制socket了
PoolD
2000-08-12
打赏
举报
回复
列表是肯定需要的,不管用什么方法。
proshyrain
2000-08-12
打赏
举报
回复
IAmKylix, PoolD: 这要用到一个ip列表, 每次和connection值比较, 我不想用这个列表!!!
PoolD
2000-08-11
打赏
举报
回复
Connections是一个TCustomWinSocket的动态数组,在TCustomWinSocket中有RemoteAddress、RemoteHost等属性可以用来区分各个联接。
IAmKylix
2000-08-11
打赏
举报
回复
TServerSocket.OnRead事件提供Socket对象,它是针对每个Client连接而自动创建的TServerClientSocket,使用它来发送自然会区分对各个Client,同时它有RemoteHost属性(或是其他)可区分是那个Client连接,以及得到Client端的IP。
电脑代理服务器地址和端口号.docx
电脑代理服务器地址和端口号全文共16页,当前为第1页。电脑代理服务器地址和端口号全文共16页,当前为第1页。竭诚为您提供优质文档/双击可除 电脑代理服务器地址和端口号全文共16页,当前为第1页。 电脑代理服务器地址和端口号全文共16页,当前为第1页。 电脑代理服务器地址和端口号 篇一:代理服务器设置大放送 篇二:电脑端口大全 例如局域网路由网关是192.168.0.1 但是获取网关却是0.2,当然不可以上网了还必须手动更改设置才能上网。 原因:在网络中不知道谁又加了个路由器,开了dhcp服务。所以获取网关是不对的,把它的dhcp关后一切正常 有过一些黑客攻击方面知识的读者都会知道,其实那些所谓的黑客并不是像人们想象那样从天而降,而是实实在在从您的计算机"大门"中自由出入。计算机的"大门"就是我们平常所说的"端口",它包括计算机的物理端口,如计算机的串口、并口、输入/输出设备以及适配器接口等(这些端口都是可见的),但更多的是不可见的软件端口,在本文中所介绍的都是指"软件端口",但为了说明方便,仍统称为"端电脑代理服务器地址和端口号全文共16页,当前为第2页。电脑代理服务器地址和端口号全文共16页,当前为第2页。口"。本文仅就端口的基础知识进行介绍, 一、端口简介 随着计算机网络技术的发展,原来物理上的接口(如键盘、鼠标、网卡、显示卡等输入/输出接口)已不能满足网络
通信
的要求,Tcp/Ip协议作为网络
通信
的标准协议就解决了这个
通信
难题
。Tcp/Ip协议集成到操作系统的内核中,这就相当于在操作系统中引入了一种新的输入/输出接口技术,因为在Tcp/Ip协议中引入了一种称之为"
socket
(套接字)"应用程序接口。有了这样一种接口技术,一台计算机就可以通过软件的方式与任何一台具有
socket
接口的计算机进行
通信
。端口在计算机编程上也就是"
socket
接口"。 有了这些端口后,这些端口又是如何工作呢?例如一台服务器为什么可以同时是web服务器,也可以是FTp服务器,还可以是邮件服务器等等呢?其中一个很重要的原因是各种服务采用不同的端口分别提供不同的服务,比如:通常Tcp/Ip协议规定web采用80号端口,FTp采用21号端口等,而邮件服务器是采用25号端口。这样,通过不同端口,计算机就可以与外界进行互不干扰的
通信
。 据专家们分析,服务器端口数最大可以有65535个,但是实际上常用的端口才几十个,由此可以看出未定义的端口相当多。这是那么多黑客程序都可以采用某种方法,定义出一个特殊的端口来达到入侵的目的的原因所在。为了定义出电脑代理服务器地址和端口号全文共16页,当前为第3页。电脑代理服务器地址和端口号全文共16页,当前为第3页。这个端口,就要依靠某种程序在计算机启动之前自动加载到内存,强行控制计算机打开那个特殊的端口。这个程序就是"后门"程序,这些后门程序就是常说的木马程序。简单的说,这些木马程序在入侵前是先通过某种手段在一台个人计算机中植入一个程序,打开某个(些)特定的端口,俗称"后门"(backDoor),使这台计算机变成一台开放性极高(用户拥有极高权限)的FTp服务器,然后从后门就可以达到侵入的目的。 二、端口的分类 端口的分类根据其参考对象不同有不同划分方法,如果从端口的性质来分,通常可以分为以下三类: (1)公认端口(wellKnown ports):这类端口也常称之为"常用端口"。这类端口的端口号从0到1024,它们紧密绑定于一些特定的服务。通常这些端口的
通信
明确表明了某种服务的协议,这种端口是不可再重新定义它的作用对象。例如:80端口实际上总是hTTp
通信
所使用的,而23号端口则是Telnet服务专用的。这些端口通常不会像木马这样的黑客程序利用。为了使大家对这些常用端口多一些认识,在本章后面将详细把这些端口所对面应的服务进行列表,供各位理解和参考。 (2)注册端口(Registered ports):端口号从1025到49151。它们松散地绑定于一电脑代理服务器地址和端口号全文共16页,当前为第4页。电脑代理服务器地址和端口号全文共16页,当前为第4页。些服务。也是说有许多服务绑定于这些端口,这些端口同样用于许多其他目的。这些端口多数没有明确的定义服务对象,不同程序可根据实际需要自己定义,如后面要介绍的远程控制软件和木马程序中都会有这些端口的定义的。记住这些常见的程序端口在木马程序的防护和查杀上是非常有必要的。常见木马所使用的端口在后面将有详细的列表。 (3)动态和/或私有端口(Dynamicand/orprivate ports):端口号从49152到65535。理论上,不应把常用服务分配在这些端口上。实际上,有些较为特殊的程序,特别是一些木马程序就非
微信小程序之Web
Socket
为什么需要web
socket
? 传统的实时交互的游戏,或服务器主动发送消息的行为(如推送服务),如果想做在微信上,可能你会使用轮询的方式进行,不过这太消耗资源,大量的请求也加重了服务器的负担,而且延迟问题比较严重。如果是自己开发的app,为了解决这些问题,很多团队会自建
socket
,使用tcp长链接、自定协议的方式与服务器进行相对实时的数据交互。有能力的团队,采用这种方式自然没什么大问题。不过小团队可能就要花费很多时间去调试,要解决很多
难题
,这个在成本上就划不来。 H5引入了web
Socket
来解决网页端的长链接问题,而微信小程序也支持web
socket
。这是一个非常重要的特性,所以本系列的文章会专门拿出一篇来讨论web
socket
。 web
Socket
本质上也是TCP连接,它提供全双工的数据传输。一方面可以避免轮询带来的连接频繁建立与断开的性能损耗,另一方面数据可以是比较实时的进行双向传输(因为是长链接),而且Web
Socket
允许跨域
通信
(这里有个潜在的跨域安全的问题,得靠服务端来解决)。目前除IE外的浏览器已经对web
Socket
支持得很好了,微信小程序再推一把之后,它会变得更加流行。 我们来设计一个新的demo,一个比较有趣的小游戏,多人版扫雷,准确地讲,多人版挖黄金。 游戏规则是这样的:把雷换成金子,挖到金子加一分,每人轮流一次(A挖完轮到B,B挖完A才能再点击),点中金子就算你的,也不会炸,游戏继续,直到把场上所有的金子都挖完游戏才结束。跟扫雷一样,数字也是表示周边有几个金子,然后用户根据场上已经翻出来的数字来猜哪一格可能有金子。 这种交互的游戏难点在于,用户的点击操作都要传到服务器上,而且服务器要实时的推送到其它玩家的应用上。另外用户自己也要接收对方操作时实时传过来的数据,这样才不至于重复点中同一个格子。简单讲,就是你要上报操作给服务器,而服务器也要实时给你推消息。为了简化整个模型,我们规定玩家必须轮流来点击,玩家A点完后,才能轮到玩家B,玩家B操作完,玩家A才能点。 我们分几步来实现这个功能。 一、实现思路 1、第一步,我们要先生成扫雷的地图场景 这个算法比较简单,简述一下。随机取某行某列就可以定位一个格子,标记成金子(-1表示金子)。mimeCnt表示要生成的金子的数量,用同样的方式循环标记mimeCnt个随机格子。生成完后,再用一个循环去扫描这些-1的格子,把它周边的格子都加1,当然必须是非金子的格子才加1。代码放在这里。 其中increaseArround用来把这格金子周边的格子都加1,实现也比较简单: 执行genMimeArr(),随机生成结果如下: -1表示金子。看了下貌似没什么问题。接下去,我们就要接入web
Socket
了。 (这个是js版本的,其实生成地图场景的工作是在后台生成,这个js版本只是一个演示,不过算法是一样的。) 2、我们需要一个支持web
Socket
的服务端 本例子中,我们使用python的tornado框架来实现(tornado提供了tornado.web
socket
模块)。当然读者也可以使用
socket
.io,专为web
Socket
设计的js语言的服务端,用起来非常简单,它也对不支持web
Socket
的浏览器提供了兼容(flash或comet实现)。 笔者本人比较喜欢使用tornado,做了几年后台开发,使用最多的框架之一的就是它,NIO模型,而且非常轻量级,同样的rps,java可能需要700-800M的内存,tornado只要30-40M,所以在一台4G内存的机子上可以跑上百个tornado服务,而java,对不起,只能跑3个虚拟机。微服务的时代,这一点对小公司很重要。当然如果读者本人对java比较熟悉的话,也可以选择netty框架尝试一下。 web
Socket
用tornado的另一个好处是,它可以在同一个服务(端口)上同时支持web
Socket
及http两种协议。tornado的官方demo代码中展示了怎么实现同时使用两种协议。在本游戏中,可以这么用:用户进入首页,用http协议去拉取当前的房间号及数据。因为首页是打开最多的,进了首页的用户不一定会玩游戏。所以首页还没必要建立web
Socket
链接,web
Socket
链接主要用来解决频繁请求及推送的操作。首页只有一个请求操作。选了房间号后,进去下一个游戏页面再开始建立web
Socket
链接。 3、客户端 使用微信小程序开发工具,直接连接是会报域名安全错误的,因为工具内部做了限制,对安全域名才会允许连接。所以同样的,这里我们也继续改下工具的源码,把相关的行改掉就行修改方式如下: 找到asdebug.js的这一行,把它改成: if(false)即可。
ACE技术内幕:深入解析ACE架构设计与实现原理
《ace技术内幕:深入解析ace架构设计与实现原理》从构架模式、编程示例和源代码3个维度系统地对经典网络框架ace(adaptivemunicationenvironment)的架构设计和实现原理进行了深入分析,它能解决4个方面的问题:,帮助框架设计者领略软件框架设计的普适原则和思想,进而设计出自己的软件框架;第二,帮助ace应用开发人员加深对ace框架的理解,提升开发水平,更好地去定制和扩展ace框架,以及解决c 网络
通信
中的
难题
;第三,帮助c 开发人员加深c 语言功底,书中有大量对c 源代码的分析,包括网络编程、动态库编程和异步编程等,还涉及10余个经典的设计模式的解析;第四,增强平台开发人员和软件架构师的技术修养,ace的设计和实现都极其,它的实现源码和架构思想非常值得去学习和研究。 全书一共7章,详细分析了ace的reactor、serviceconfigurator、task、acceptor_connector、proactor和streams等6个框架的架构设计与实现原理。每个框架的分析分为3部分:,框架的设计分析,每个框架(除task框架)都有一个构架模式与之对应,构架模式阐述了框架的设计原理,给出了框架的总体结构,是学习框架的理论基础;第二,框架的应用分析,每个框架都有一个应用实例与之对应,应用实例既帮助读者了解框架的使用方法,又为读者提供了一个可以调试的应用程序,便于读者使用调试器探索框架的内部秘密;第三,框架的实现分析,这是本书的重点,对框架的实现原理进行了详细的分析,并且对重点的类和流程给出了uml类图和uml顺序图,可以让读者在短时间内掌握框架的实现技术。
MATLAB与Robotstudio建立
socket
通信
MATLAB与Robotstudio建立
socket
通信
内容概括 哈哈,本人人生中的第一篇博客,也算是向博客大佬们看齐的第一个步伐啦,话不多说,直奔主题,这篇写的是这两天做的MATLAB与RobotStudio建立
socket
通讯的一个实例,机器人可以发位置数据给MATLAB,MATLAB也可以发送想要到达的目标位置点给机器人让机器人动作,当然,这只是这两天做的一个初步的成果,有待改善和添加的功能还很多。。。 方法和思路 首先,我是看了这个博客大佬的写的MATLAB与Robotstudio建立
socket
C#
Socket
通信
Socket
客户端和服务端
通信
Delphi
5,388
社区成员
262,731
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章