社区
网络及通讯开发
帖子详情
1000分求UDP多线程文件传输例子
inallweathers
2005-02-18 02:29:13
thx
mail:jqsh2000@163.com
收到发分
...全文
441
17
打赏
收藏
1000分求UDP多线程文件传输例子
thx mail:jqsh2000@163.com 收到发分
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xusimeng
2005-04-07
打赏
举报
回复
up!
Sephil
2005-04-06
打赏
举报
回复
http://www.2ccc.com/article.asp?articleid=2030
NetSpider9804040
2005-04-06
打赏
举报
回复
学习+接分!
xiejingking
2005-04-02
打赏
举报
回复
ding
icwin
2005-03-30
打赏
举报
回复
up
huaqglxy2004
2005-03-24
打赏
举报
回复
up
过客猫2022
2005-03-02
打赏
举报
回复
下面是我写的UDP例子,支持多线程!
你可以在每个线程使用这个对象实例,或多线程使用一个实例!
class XBroadcast
{
public:
XBroadcast();
virtual ~XBroadcast();
void Msg(const char * lpzRemoteHost, int iPort,const void * pBuffer,int iBufferSize);
void Msg(int iPort,const void * pBuffer,int iBufferSize);
void Msg(const char * lpzRemoteHost, int iPort,const XByteBuffer * Buffer );
void Msg(int iPort,const XByteBuffer * Buffer );
private:
TNMUDP * m_UDP;
XDynamicArray<AnsiString> m_IPArray;
TCriticalSection * m_SyncFlag;
};
//------------------------------------------------------------------------------
XBroadcast::XBroadcast()
{
m_UDP = new TNMUDP(NULL);
m_SyncFlag = new TCriticalSection();
unsigned long lBufLen;
unsigned long iIP;
unsigned long iMask;
unsigned long iBroadcastIP;
IP_ADAPTER_INFO *pAdapterInfo;
int IpCount = 0;
GetAdaptersInfo(NULL, &lBufLen);
IpCount = lBufLen/sizeof(IP_ADAPTER_INFO);
if( (lBufLen%sizeof(IP_ADAPTER_INFO)) != 0 ) IpCount++;
pAdapterInfo = new IP_ADAPTER_INFO[IpCount];
memset( pAdapterInfo, 0, sizeof(IP_ADAPTER_INFO) * IpCount );
try
{
if(GetAdaptersInfo(pAdapterInfo, &lBufLen)==NO_ERROR)
{
IP_ADAPTER_INFO *p = pAdapterInfo;
for(int i=0;i<IpCount;i++,p++)
{
iIP = 0;
iMask = 0;
iBroadcastIP = 0;
iIP = inet_addr(p->IpAddressList.IpAddress.String);
iMask = inet_addr(p->IpAddressList.IpMask.String);
iBroadcastIP = (~iMask) | iIP;
in_addr tmpIP;
tmpIP.S_un.S_addr = iBroadcastIP;
m_IPArray.Append(inet_ntoa(tmpIP));
}
}
}
__finally
{
delete[] pAdapterInfo;
}
}
XBroadcast::~XBroadcast()
{
m_SyncFlag->Enter();
m_SyncFlag->Leave();
delete m_UDP;
delete m_SyncFlag;
}
void XBroadcast::Msg(const char * lpzRemoteHost, int iPort,const void * pBuffer,int iBufferSize)
{
m_SyncFlag->Enter();
try
{
m_UDP->RemoteHost = lpzRemoteHost;
m_UDP->RemotePort = iPort;
m_UDP->SendBuffer((char *)pBuffer,iBufferSize,iBufferSize);
}
__finally
{
m_SyncFlag->Leave();
}
}
void XBroadcast::Msg(int iPort,const void * pBuffer,int iBufferSize)
{
int iLen = m_IPArray.Length;
for(int i=0;i<iLen;i++)
{
Msg(m_IPArray[i].c_str(),iPort,pBuffer,iBufferSize);
}
}
void XBroadcast::Msg(const char * lpzRemoteHost, int iPort,const XByteBuffer * Buffer )
{
Msg(lpzRemoteHost,iPort,Buffer->Data(),Buffer->Length);
}
void XBroadcast::Msg(int iPort,const XByteBuffer * Buffer )
{
Msg(iPort,Buffer->Data(),Buffer->Length);
}
fkeumtdh
2005-03-02
打赏
举报
回复
卧底 ^-^
shally5
2005-03-02
打赏
举报
回复
UP
ywyw
2005-03-02
打赏
举报
回复
up
purcjame
2005-03-02
打赏
举报
回复
不一定要多线程 你可以利用handle 单对多一样搞定 Pasp(CJY) 那个你可以看看
sydt2000
2005-03-02
打赏
举报
回复
收藏!!
constantine
2005-02-28
打赏
举报
回复
多线程bcb的没有见过
ssyfrank
2005-02-28
打赏
举报
回复
简单的文件传输,参考一下!
void __fastcall TFm_paper_cast::Button1Click(TObject *Sender)
{
if (OpenDialog1->Execute())
{
TFileStream *MyFStream;
MyFStream = new TFileStream(OpenDialog1->FileName, fmOpenRead);
try
{
NMStrm1->Host = "172.16.255.255";
NMStrm1->FromName = "cat";
NMStrm1->PostIt(MyFStream);
}
catch(...)
{
}
MyFStream->Free();
}
}
void __fastcall TFm_paper_cast::NMStrmServ1MSG(TComponent *Sender,
const AnsiString sFrom, TStream *strm)
{
if (FileExists("f:\copy.txt"))
DeleteFile("f:\copy.txt");
TFileStream *MyFStream;
MyFStream = new TFileStream("f:\copy.txt", fmCreate);
try
{
MyFStream->CopyFrom(strm, strm->Size);
}
catch(...)
{
}
MyFStream->Free();
}
Pasp
2005-02-28
打赏
举报
回复
http://www.tiantiansoft.com/Article_Show.asp?ArticleID=140
BCB断点续传和多线程下载 可以不?给分吧
lidawen
2005-02-18
打赏
举报
回复
up
3996906
2005-02-18
打赏
举报
回复
改多线程有点累
只有单的
如果有谁有麻烦给我个,谢谢了~~~~~~~~~~~3996906@163.com
udp
多线程
传输
例子
在"
udp
多线程
传输
例子
"中,我们可以预期看到一个利用
多线程
进行
UDP
通信的程序示例。通常,这样的程序会包含以下几个关键部分: 1. **套接字创建**:在C++或Java等编程语言中,首先需要创建一个
UDP
套接字,这通过...
多线程
UDP
传送文件示例
本示例主要关注的是利用
多线程
和
UDP
协议进行
文件传输
,这是一种相对复杂的操作,涉及到并发处理、网络编程以及数据可靠性等多个方面。 首先,我们来了解
多线程
的概念。
多线程
是指在一个程序中存在多个执行流,这些...
udp
多线程
例子
这表明示例代码可能不仅展示了基本的
UDP
多线程
通信,还包含了如何在一个服务端程序中实现
文件传输
的逻辑。 总之,这个
例子
深入地探讨了在Linux环境中利用
UDP
进行
多线程
并发编程的技术,涵盖了套接字编程、线程创建...
c#
UDP
多线程
多客户端传输
例子
总的来说,这个C#
UDP
多线程
多客户端传输
例子
展示了如何利用C#的套接字类和
多线程
技术实现高效的
UDP
通信。服务端通过监听端口并为每个客户端创建独立的处理线程,确保了并发处理能力;客户端则通过
多线程
发送和接收...
多线程
UDP
通讯
例子
标题"
多线程
UDP
通讯
例子
"暗示我们将探讨如何在一个
多线程
环境中实现基于
UDP
的通信。在这样的系统中,可能有多个线程分别负责接收数据、发送数据或者处理接收到的数据,从而提高应用程序的响应速度和并行处理能力。 ...
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章