delphi-TTcpServer与TTcpClient】的更多相关文章

unit TcpSCDemo;//最简单的TTcpServer与TTcpClient通信实例-Delphi //Borland推出TTcpServer与TTcpClient作为主要的网络通信控件,意味着这两个控件有很大的优越性,//但是有关这两个控件的资料非常少见,很多人都在问一个相同的问题:TcpServer怎么样向TcpClient发送数据?//网上的回答千奇百怪,归纳起来有三种://1.参考delphi自带的netchat.例子中TcpServer只收不发,答题得分0.//2.用indy或…
添加 src/*.cpp 到工程, 修改 Directories and Conditionals, 添加 WIN32 UDT_EXPORTS udt.h 需要 #pragma link "Ws2_32.lib" common.cpp channel.cpp #elif WIN32 ---> #elif defined ( WIN32 ) http://www.cnblogs.com/littlestone08/archive/2011/12/17/2291194.html 在D…
最简单的TTcpServer与TTcpClient通信实例-Delphi_海盗船长_新浪博客http://blog.sina.com.cn/s/blog_5383794d0100nt9u.html delphi TTcpClient TTcpServer分析 - 沧海一粟 - 博客频道 - CSDN.NEThttp://blog.csdn.net/andrew57/article/details/8767308 用TTcpClient和TTcpServer进行文件的传输 - 好记性不如烂笔头 -…
delphi TTcpClient TTcpServer分析(转) 只描述windows socket部分. sockets.pas中各个类得继承关系: TBaseSocket | ------------------------ | TIpSocket | -------------------------------------------------------------------------------------- |                                …
发送数据时有Sendln,SendBuf,SendStream.接收数据时有Receiveln,ReceiveBuf,当时我很奇怪为什么没有ReceiveStream.因为很自然的想到是对应关系的.但当时我不知道,发数据时是一小段一小段地发的 看看SendStream代码: function TBaseSocket.SendStream(AStream: TStream): Integer; var BufLen: Integer; Buffer: array[0..511] of Byte;…
Delphi的大多数书籍里面都没有提到delphi的各种socket通信组件的模式和模型,有的书只讲解了windows的socket模式和模型,并没有归纳各种组件采用的模型,所以我们的程序员并不知道如何进行选择,只知道某组件好,为什么好,如何运用就不知道了. 笔者对这些组件进行了一个归纳,如下: 组件 单元 依赖 模式 模型 WebApp/CGI sockapp.pas Indy 阻塞/非阻塞 select Indy 阻塞/非阻塞 select ICS OverbyteIcsWSocket.pa…
在原来版本如D5.D6中使用的控件如Quickrep,FastNet等,在D7中仍然是保留的.只是Delphi没有将他们默认的安装到组件面版中来.这些控件包全部保存在Delphi目录的bin下,文件扩展名为.bpl(共将近60个).安装这些包的方法很简单,只需点击菜单"component---->Install Packages...",然后使用"ADD"选择需要的包就可以了. 下面就其中的一部分bpl列表说明其中的控件: dclact70.bpl (Borl…
Delphi各种Socket组件的模式和模型 Delphi的大多数书籍里面都没有提到delphi的各种socket通信组件的模式和模型,有的书只讲解了windows的socket模式和模型,并没有归纳各种组件采用的模型,所以我们的程序员并不知道如何进行选择,只知道某组件好,为什么好,如何运用就不知道了. 笔者对这些组件进行了一个归纳,如下: 组件 单元 依赖 模式 模型 WebApp/CGI sockapp.pas Indy 阻塞/非阻塞 select Indy 阻塞/非阻塞 select IC…
经常有朋友提这样的问题,“我原来在delphi5或者delphi6中用的很熟的控件到哪里去了?是不是在delphi7中没有了呢?这是不是意味着我以前写的代码全都不能够移植到delphi7中来了呢?是不是我必须学习适应这些新的控件呢?” 现在我就对这一问题进行解释,并对在delphi7中的VCL以及CLX进行一下总结,方便有这方面需求的朋友进行查询 其实,我们在原来版本如D5.D6中使用的控件如Quickrep,FastNet等,在D7中仍然是保留的.只是Delphi没有将他们默认的安装到组件面版…
取得网页的源码内容的函数以及调用方法供大家参考: program geturl; uses wininet, windows; //取网页内容 function StrPas(const Str: PChar): string; begin Result := Str; end; function GetWebPage(const Url: string):string; var Session, HttpFile:HINTERNET; szSizeBuffer:Pointer; dwLengt…
我们知道Delphi的每个对象可以包含多个Property,Property中可以是方法,例如TButton.OnClick属性.Delphi提供的仅仅是 一对一的设置,无法直接让TButton.OnClick去调用多个方法,而Java中采用Listener模式有类似AddListener方法提供多播. Delphi多播的思想源于Allen Bauer的Blog:http://blogs.embarcadero.com/abauer/2008/08/15/38865, cnWizard的武稀松大…
最近做个发邮件的功能,需要将日志文件通过邮件发送回来用于分析,但是日志文件可能会超级大,测算下来一天可能会有800M的大小.所以压缩是不可避免了,delphi中的默认压缩算法整了半天不太好使,就看了看7z,在windows下有dll那么就用它吧. 下载7z.dll,还有一个delphi的开发sdk文件,sevenzip.pas.有这两个就可以了. 压缩 使用超级简单 procedure TForm1.Button1Click(Sender: TObject); var Arch: I7zOutA…
针对返回结果为参数的 一. 先建立自己的存储过程 ALTER PROCEDURE [dbo].[REName] ) AS BEGIN select ROW_NUMBER() over(order by Name asc) as [序号], Name,Gender,Birthday,Mobile,Tel,Ctfld from dbo.name where Gender = @Gender OR @Gender IN ( NULL, '', '-1' ) END 二.打开delphi,先添加几个控件…
在系统中同时安装了Dephi 2010LITE版与Delphi XE lite后,总是会有一个有问题 是因为两者都是读取C:\ProgramData\Embarcadero目录下的license文件, 因此在安装Delphi 2010正常运行后,需要备份相应的文件 而安装好Delphi XE后,先清空此目录下的文件,然后再用activator.exe执行一下reset.activator一下,运行好Delphi xe,再备份好相应文件 这样就有两份文件了,需要运行哪个,就先恢复一下相应的lice…
VER300    Delphi Seattle / C++Builder Seattle    23    230    (Delphi:Win32/Win64/OSX/iOS32/iOS64/Android) (C++Builder:Win32/Win64/OSX/iOS32/iOS64/Android)        VER290    Delphi XE8 / C++Builder XE8    22    220    (Delphi:Win32/Win64/OSX/iOS32/iOS…
现在delphi都发布到xe8了,tidhttp还有缺陷,那就是超时设置在没有网络或者连不上服务器的时候是无效的,不管你设置为多少都要10-20秒.connectTimeout和readTimeout都试过了,网上找了一圈,有人提出修改源码,我没试,应该也可以. 我采用的是把idhttp.get方法放到线程里,在主线程定时检查返回状态,这样就可以控制超时时间了,伪代码如下. strResult:=''; Tthread.CreateAnonymousThread( procedure begin…
Delphi Code Editor 之 编辑器选项 可从Code Editor的右键菜单中选择“Properties”菜单项来查看编辑器选项.也可以从主菜单[Tools | Editor Options…]打开编辑器选项对话框.如下图: 下面分别来讲述各个页面. 1.General页面 这两个页面用于控制编辑器的工作方式.其中包括很多选项. 页面下面的“Editor SpeedSetting”组合框,可从里面选择多种设置,如下图: 如果改变此组合框的设置,上面的“Editor options”…
Delphi是一个可视化的编程工具,ADO编程也是这样,所以话不多言,直接通过代码.截图和语言来说明. 我的数据库是Oracle,为了测试,先建一个表:create table practice(uno varchar(8), uname varchar(20));  这个表比较简单,只有两个字段. 我的Oracle数据库是安装在虚拟机上的(操作系统是Redhat),所以需要先在服务器上配置好,另外需要在Windows上进行相关的配置(监听程序配置和本地网络服务名配置).否则后面就没有办法配置数…
先介绍一个可能比较常用的方法,获取当前时间 var datetime: string; begin datetime:= FormatDateTime('yyyy-mm-dd hh:mm:ss', Now); ShowMessage(datetime); end; 其中的Now 函数是获取当前的时间,FormatDateTime 用于将Now获取的时间信息格式化为想要的格式. 这个方法可以获取当前时间,并且格式化为例如 2008-09-10 09:10:58 的格式. 在介绍能够获取毫秒信息的方…
当使用了长字符串类型的参数.变量时,如string,要引用ShareMem. 虽然Delphi中的string功能很强大,但若是您编写的Dll文件要供其它编程语言调用时,最好使用PChar类型.如果您要坚持使用string类型的参数时.变量甚至是记录信息时,就要引用ShareMem单元,而且这个单元必须是第一个引用的,即在uses语句后的第一个单元. 下面通过一个项目示例来讲解怎么使用ShareMem. 先新建一个DLL项目 先新建一个DLL项目,然后再新建一个Unit1单元. 工程文件是这样的…
我是参考了万一的博客里面的关于TStringGrid学习的教程,但是我也结合自己的实际操作和理解,加入了一些个人的补充,至少对我有用! 学用TStringGrid之——ColCount.RowCount.Cells 本例中使用到了Panel控件,只是比较简单的拖拽到界面上(比如可以在Panel上面放按钮……),详细的知识并没有涉及到,还是先学习TStringGrid. 本例的功能: 1.获取StringGrid的行数.列数 2.给单元赋值 运行效果图 : 代码如下: unit Unit1; in…
最近在开发中使用到了UpDown这个控件,但是因为之前没有使用过,所以很不熟悉,于是就编写了一个简单的demo来学习UpDown以及其结合TEdit的用法. 初步的常用功能的简介 目前(2015.08.07)只是涉及到其简单的用法,因为目前我所需要使用的就只有这些内容,系统化的使用和知识将会在以后需要的时候再补充. 目前涉及到的内容有UpDown组件与TEdit组件的配合使用.UpDown的Position属性. 寻找UpDown: 如下图,Win32下,用红色框框出来的 先看一下这个程序的运行…
首先看TThread源码中关于OnTerminate的代码: public .... property OnTerminate: TNotifyEvent read FOnTerminate write FOnTerminate; ... end; 再看Delphi自带的帮助手册中对于OnTerminate的解释: Occurs after the thread's Execute method has returned and before the thread is destroyed. p…
先介绍ExtractFilePath和ParamStr ParamStr 该函数的原型是:function paramstr(i: Integer): String; 对于任何的application,paramstr(0)都默认代表的是应用程序的绝对路径.假如你这个编译号的exe 文件在 d:\delphi下,名字叫做 project1.exe.那么 在该应用程序中paramstr(0)返回:d:\delphi\project1.exe.这个值是变的,exe程序在哪,这个值就变为哪儿. 那么有…
转载自:http://www.cnblogs.com/mumble/archive/2011/05/25/2056462.html Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用: 其实在看Delphi的Format函数的时候,可以与C 里面的printf 函数的格式化相关的知识进行类比. 首先看它的声明: function Format(const Format: string; const Args: array o…
三个Trim函数简介 函数原型 function Trim(const S: string): string; 将字符串前后的空白及控制字元清掉. 注意Trim函数只能清掉字符串前后的空格及控制字元,不能清除字符串中间的空格 函数原型 function TrimLeft(const S: string): string; 将字符串左边的空白及控制字元清掉. 函数原型 function TrimRight(const S: string): string; 将字符串右边的空白及控制字元清掉. Tr…
转载自:http://www.ylzx8.cn/windows/delphi/73200.html 本人在做一个测试,服务器是IOCP的,我假定最大链接数是50000个. 测试背景:如果每个链接之间的数据需要服务器中转的话,那么我需要一个数据容器储存用户的关键数据和连接. 我简单的做了一段简单的代码,关键代码段如下: RTest = record Key: Integer; Name: String[20]; end; PTest = ^RTest; TListType = (ltList, l…
转载自:http://www.cnblogs.com/qiusl/p/4028437.html?utm_source=tuicool 我估摸着内存分配+释放是个基础的函数,有些人可能没注意此类函数或细究,但我觉得还是弄明白好. 介绍下面内存函数之前,先说一下MM的一些过程,如不关心可以忽略: TMemoryManger = record GetMem: function(Size: Integer): Pointer; FreeMem: function(P: Pointer): Integer…
转载自:http://blog.csdn.net/jqandjq/article/details/5429137 看了这里标题,大家可能以为我会谈TListBox控件,那就错了.我要谈的是Delphi提供给我们的具有列表性质的类:TStringList.TList和TObjectList.TStringList用来存放字符串,TList存放指针,而TObjectList则存放对象(Object) 在我们使用Delphi的过程中,有很多数据的存储是要靠 数组解决的.虽然Delphi现在已经支持了可…
Delphi也是基于继承和接口的多态性.…