INDY9发送tstream

首先都要发送stream.Size, 这是必须的。

// 服务端

AThread.Connection.WriteInteger(stream2.Size);

AThread.Connection.WriteStream(stream2);

// 客户端

IdTCPClient1.WriteInteger(FSendStream.Size);
IdTCPClient1.WriteStream(FSendStream);

时间: 2024-11-13 08:01:41

INDY9发送tstream的相关文章

DIOCP3-粘包处理

什么是粘包:    第一次发送  12345, 第二次发送abcde, 底层socket可能会一次性进行发送12345abcde,或者对方可能一次性进行了接收,那接收的时候,你可能想分两次接收才对,第一次接受到12345, 第二次想接收abcde,但是事与愿违,一次就接收完了,这就是粘包的问题.需要自己处理,   怎么样处理粘包:   常见的方法是在包数据的前面加长度比如我先发送一个字节代表长度5 然后再发数据包12345, 这样接收的时候,先读数据包长度,然后再获取包的数据,这样就可以处理粘包

delphi中的idhttpserver如何才能收到idhttp发送来的exe\rar文件呢

http://zhidao.baidu.com/link?url=-q2oXqYCKBZ9OgFDEHAcQwQEY_NroHcqGvVfKW67X5sF9LdjAAB_HPXQo04VxStFVS7yo_LkxLRWjgDoZXRdd_ delphi中的idhttpserver如何才能收到idhttp发送来的exe\rar文件呢 2008-06-18 00:01nkym0626 | 浏览 1811 次  悬赏:5 编程语言服务器软件 我用idhttp发送文件,idhttpserver只能收到t

DIOCP开源项目-DIOCP3直接发送对象,帮你处理粘包问题

该DEMO演示,如何在客户端与服务端之间直接传递TStream对象,让你专注于处理数据逻辑,可以忽略处理网络传输间粘包的问题. 上面由服务端向所有的客户端推送一个消息TMemoryStream对象(该对象为字符串数据). 代码解释: procedure TfrmMain.actPushMsgExecute(Sender: TObject); var lvList:TList; i: Integer; lvStream:TMemoryStream; s:AnsiString; begin lvLi

socket发送和接收数据

1)sendBuf(),sendText(),sendStream() 几乎所有的通信控件都会提供上面的3个方法.首先看看SendBuf(). function TCustomWinSocket.SendBuf(var Buf; Count: Integer): Integer;var ErrorCode: Integer;begin Lock; try Result := 0; if not FConnected then Exit; Result := send(FSocket, Buf,

技术笔记:Indy IdSMTP支持腾讯QQ邮箱邮件发送

1.腾讯QQ邮箱的授权码问题 因为腾讯邮箱折腾了个底朝天,其要搞什么授权码登录第三方客户端,否则会报这个错误: 'Error: 请使用授权码登录.详情请看: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256' 按照腾讯的链接去做了设置,申请了授权码,再发送就好了. 就这个设置前所未见,客户成本挺高的,不知道哪来的勇气. 2.腾讯QQ邮箱的SSL要求 用自己的邮箱左测右测还是可以了,挺开心

C++ Builder平台使用Indy9开发自动FTP程序01

Indy9与CB自带的Indy8不同处还是挺多的.首先就是图标变漂亮了,其次很多Method都重写了.它主要是依据Delph里的函数,力求与之相通.不同点在本系列的后续章节中会一一介绍. 在写ftp代码之前,非常有必要了解下FTP网络相关知识.再次借用下Binny的博文: 在使用FTP时,如果客户端机器和FTP服务器双方之间的所有端口都是开放的,那连接不存在问题.如果客户端与服务器之间有防火墙,如果没配置好防火策略和采用合适的连接模式,会导致登录成功,但无法List列表的问题.要避免出现这样的问

winform学习日志(二十三)---------------socket(TCP)发送文件

一:由于在上一个随笔的基础之上拓展的所以直接上代码,客户端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using Sys

select 设置发送超时发送注意事项

//设置发送超时你只发送, 并发送足够多的数据以填满发送缓冲区, 接收端一直不接收.发送端一量满发送缓冲区就会阻塞, 如果你设置了发送超时, 超时到了它就会返回发送超时了. 在send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,而设置收发超时控制: 在Linux下需要注意的是时间的控制结构是struct timeval而并不是某一整型数,以下是来自于网上一篇文章中的摘录,它是这样写的:int nNetTimeout=1000;//1秒,//设置发送超时setsockopt(

学习笔记之邮件发送篇

用脚本语言发送邮件是系统管理员必备技能 对系统定期检查或者当服务器受到攻击时生成文档和报表. 发布这些文档最快速有效的方法就是发送邮件. python中email模块使得处理邮件变得比较简单 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 本段摘录于    http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 1.smtplib模块 smtplib.SMTP([host[, p