社区
网络及通讯开发
帖子详情
急!Socket通讯中,如何实现数据包队列?请高手赐教!
xuytf
2002-12-17 08:46:10
我在做一个通讯程序,在客户端,我想建一个数据包队列,每发一个数据包,就设一个标志,当收到服务端的响应时,再根据ID检索队列中的该数据包,并将其删除。
请问:这个队列可以用哪些类实现,请给一些代码说明。
...全文
173
7
打赏
收藏
急!Socket通讯中,如何实现数据包队列?请高手赐教!
我在做一个通讯程序,在客户端,我想建一个数据包队列,每发一个数据包,就设一个标志,当收到服务端的响应时,再根据ID检索队列中的该数据包,并将其删除。 请问:这个队列可以用哪些类实现,请给一些代码说明。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
iamleejun
2003-02-18
打赏
举报
回复
mark
l_clove
2002-12-28
打赏
举报
回复
用互斥或线程同步来完成...
CRITICAL_SECTION g_WaitInitEnd;
InitializeCriticalSection(&g_WaitInitEnd);
EnterCriticalSection(&g_WaitInitEnd);
.
(访问临界资源,你的队列)
.
LeaveCriticalSection(&g_WaitInitEnd);
DeleteCriticalSection(&g_WaitInitEnd);
pp616
2002-12-22
打赏
举报
回复
收到响应将发送线程锁死。删除动作完成在恢复发送线程
xuytf
2002-12-17
打赏
举报
回复
to 明月
因为数据量很大(每次队列可能有5,6万),我用两个线程,一个用来发这个队列,另一个用来在收到响应时删除队列中相应数据包。麻烦告诉我,如何实现操作这个队列的同步?
先谢了!
poweruser
2002-12-17
打赏
举报
回复
可以使用STL中的list或map
hatumei
2002-12-17
打赏
举报
回复
typedef struct
{
int ID;
void* msg;
int Status;
}MsgElem;
class TMsgStack
{
private:
DynamicArray< MsgElem>elem ;
int count;
int upgrade;
public:
MsgStack(int,int);
void Add(MsgElem);
int Find(int Msg_Key);
MsgElem operator[](int index);
int GetLength();
};
TMsgStack::MsgStack(int cnt=10,int up=5)
{
elem.Length=cnt;
count=0;
upgrade=up;
}
void TMsgStack::Add(MsgElem e)
{
elem[count]=e;
count++;
if(count>elem.Length)
{
elem.Length=elem.Length+upgrade;
}
}
int TMsgStack::Find(int Msg_Key)
{
for(int i=0;i<count;i++)
{
if(elem[i].ID==Msg_Key)
{
return i;
}
}
return -1;
}
MsgElem TMsgStack::operator[](int index)
{
if(index>=count)
{
return NULL;
}
else
{
return elem[index];
}
}
int TMsgStack::GetLength()
{
return count;
}
warton
2002-12-17
打赏
举报
回复
自定义一个链吧!!
追踪 Kubernetes
中
的
数据包
统计一下在三个场景
中
,经过内核网络协议栈的处理次数都是两次(包括 netfilter 的处理。),即使是同 pod 或者同节点内。而这两种情况实际都发生在同一个内核空间
中
。假如同一个内核空间
中
的两个
socket
可以直接传输数据,是不是就可以省掉内核网络协议栈处理带来的延迟?下篇继续。关注"云原生指北"微信公众号(转载本站文章
请
注明作者和出处乱世浮生,
请
勿用于任何商业用途)
socket
通讯
之完成端口
夜路人2我的:收件箱资源博客空间设置|帮助|退出 首页 业界 移动 云计算 研发 论坛 博客 下载 更多 小猪的网络编程 小猪归来 目录视图 摘要视图 订阅 CSDN博客第三方发布工具有奖调查 CSDN目录树调整公告 低价抢购开源
中
国
Python之路:
socket
篇
Socket
网络上的两个程序通过一个双向的通信连接
实现
数据的交换,这个连接的一端称为一个
socket
,作为BSD UNIX的进程通信机制,通常也称做“套接字” ,是一个通信链的句柄,
实现
不同程序之间的发出
请
求和应答
请
求。对于文件用【打开】【读写】【关闭】模式操作。
socket
就是该模式的
实现
,即一种特殊的文件,一些
socket
函数就是对其进行操作(读/写IO、打开、关闭)更多
socket
可以点...
CPP-网络/通信:
SOCKET
客户端
实现
代码: 1 //引入头文件 2 3 #include <WinSock2.h> 4 5 6 7 //客户端创建
Socket
///////////////////////////////////////////////////// 8 char recvClient[1024] = {0}; 9 10 WORD wV...
很幽默的讲解六种
Socket
IO模型(转)
本文简单介绍了当前Windows支持的各种
Socket
I/O模型,如果你发现其
中
存在什么错误
请
务必
赐教
。 一:select模型 二:WSAAsyncSelect模型 三:WSAEventSelect模型 四:Overlapped I/O 事件通知模型 五:Overlapped I/O 完成例程模型 六:IOCP模型 老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章