社区
网络及通讯开发
帖子详情
1000分求UDP多线程文件传输例子
inallweathers
2005-02-18 02:29:13
thx
mail:jqsh2000@163.com
收到发分
...全文
443
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
传送文件示例
使用
多线程
id
UDP
传送文件的使用示例.
udp
多线程
例子
网上下的Linux下
udp
多线程
的一个
例子
网上下的Linux下
udp
多线程
的一个
例子
网上下的Linux下
udp
多线程
的一个
例子
c#
UDP
多线程
多客户端传输
例子
包含一个服务端 和一个客户端 c#编写
UDP
多线程
套接字 传输
多线程
UDP
通讯
例子
多线程
UDP
通讯
例子
多线程
UDP
通讯
例子
多线程
UDP
通讯
例子
多线程
UDP
通讯
例子
多线程
UDP
通讯
例子
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章