社区
网络及通讯开发
帖子详情
有那位高手知道如何释放(清空)SOCKET发送缓冲区?
wker
2003-05-23 05:25:57
有那位高手知道如何释放(清空)SOCKET发送缓冲区?
...全文
302
6
打赏
收藏
有那位高手知道如何释放(清空)SOCKET发送缓冲区?
有那位高手知道如何释放(清空)SOCKET发送缓冲区?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sczyq
2003-05-24
打赏
举报
回复
// .H
......
class TForm1 : public TForm
{
__published: // IDE-managed Components
TLabeledEdit *Host;
TLabeledEdit *Port;
TBitBtn *Open;
TMemo *Memo1;
TTimer *Timer1;
void __fastcall OpenClick(TObject *Sender);
void __fastcall ClientSocketConnect(TObject *Sender,
TCustomWinSocket *Socket);
void __fastcall ClientSocketError(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent,
int &ErrorCode);
void __fastcall Timer1Timer(TObject *Sender);
private: // User declarations
TClientSocket *ClientSocket;
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
......
// .CPP
//---------------------------------------------------------------------------
void __fastcall TForm1::OpenClick(TObject *Sender)
{
Open->Enabled = false;
if (ClientSocket)
{
delete ClientSocket;
ClientSocket = NULL;
}
ClientSocket = new TClientSocket(this);
ClientSocket->OnConnect = ClientSocketConnect;
ClientSocket->OnError = ClientSocketError;
ClientSocket->Host = Host->Text;
ClientSocket->Port = Port->Text.ToIntDef(1);
Memo1->Lines->Add("正在连接: " + Now().TimeString());
ClientSocket->Open();
Timer1->Tag = 0;
Timer1->Enabled = true;
Open->Enabled = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocketConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo1->Lines->Add("连接端口成功: " + Now().TimeString());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocketError(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
Memo1->Lines->Add("主机无此端口: " + Now().TimeString());
Timer1->Enabled = false;
ErrorCode = 0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Timer1->Tag++;
if (ClientSocket)
if (ClientSocket->Active)
{
Memo1->Lines->Add("连接成功 : " + Now().TimeString());
Timer1->Enabled = false;
ClientSocket->Close();
}
else if (Timer1->Tag > 50) // Timer1->Interval = 100, 即0.1秒
// 所以,Tag = 50 指5秒,
{
delete ClientSocket;
ClientSocket = NULL;
Timer1->Enabled = false;
Memo1->Lines->Add("无法找到主机: " + Now().TimeString());
}
}
//---------------------------------------------------------------------------
sczyq
2003-05-23
打赏
举报
回复
up
我也正在为此烦着,我用TClientSocket,
用异步方式,想在5秒内不能连上,就放弃
wker
2003-05-23
打赏
举报
回复
不是接收的内存变量,而是说要清空系统自动分配给一个socket的发送缓冲区
Atomictry
2003-05-23
打赏
举报
回复
memset(buf,0,sizeof(buf));
wjyww
2003-05-23
打赏
举报
回复
你用的什么socket呢?
wjyww
2003-05-23
打赏
举报
回复
接分,透明阿
winsock带注册文件
GetData方法调用规范如下:GetData data,[type,][maxLen]它从缓冲区中取得最长为maxLen的数据,并以type类型存放在data中,GetData取得数据后,就把相应的缓冲区
清空
。 PeekData方法 和GetData方法类似,但PeekData...
linux
socket
清空
缓存,Linux如何
清空
Socket
缓冲区
最近碰到一个问题,对于阻塞模式的
socket
通讯,如果要实现设备的命令控制,那么进入命令流前,缓冲区不能存有上次通讯没有取回的信息,否则一旦命令发出,然后读取缓冲区,很显然会读到上一次的剩余数据。...
【python】
清空
socket
缓冲区
有时候,可能想要先
清空
缓冲区,以便后续的数据不会被之前的数据影响。在Python中使用
Socket
进行网络通信时,可以通过调用。需要注意的是,
清空
缓冲区的过程中,如果没有数据可接收,异常,这时候我们可以通过捕获...
Linux如何
清空
Socket
缓冲区
最近碰到一个问题,对于阻塞模式的
socket
通讯,如果要实现设备的命令控制,那么进入命令流前,缓冲区不能存有上次通讯没有取回的信息,否则一旦命令发出,然后读取缓冲区,很显然会读到上一次的剩余数据。...
python
socket
清空
接收缓冲区_Python网络编程——修改套接字发送和接收的缓冲区大小...
很多情况下,默认的套接字缓冲区大小可能不够用。此时,可以将默认的套接字缓冲区大小改成一个更合适的值。1. 代码# ! /usr/bin/env python# -*- coding: utf-8 -*-import
socket
# 设置发送缓冲域大小SEND_BUF_SIZE...
网络及通讯开发
1,316
社区成员
8,873
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章