社区
网络及通讯开发
帖子详情
请教关于按字节读取socket接收到的数据
chenty85
2006-12-07 12:43:05
请问如何按字节读取socket接收到的数据
ansistring和byte类型怎么转换?
...全文
323
9
打赏
收藏
请教关于按字节读取socket接收到的数据
请问如何按字节读取socket接收到的数据 ansistring和byte类型怎么转换?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chenty85
2006-12-15
打赏
举报
回复
嗯 谢谢各位的指导
yy2001
2006-12-12
打赏
举报
回复
gz
pp616
2006-12-09
打赏
举报
回复
24 39 30 30 30 31 23 00 00 2A 33 33
00做为字符串结束符。你直接将缓冲区转为String当然只能到23 因为00被理解为字符串结束符了。
pp616
2006-12-09
打赏
举报
回复
用你发送时候的方法。
for(int i=1;i<=64;i++)
{
char buf[8];
int c=(CHAR)data[i];
wsprintf(buf,"%2x",c);
hex=hex+buf;
}
onClientRead修改为这样。
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
AnsiString hex;
int len=Socket->ReceiveLength();
char *buf=(char *)GlobalAlloc(GPTR,len+1);
Socket->ReceiveBuf(buf,len);
for(int i=0;i<=len;i++)
{
char charbuf[8];
int c=(CHAR)buf[i];
memset(charbuf,0x00,8);
wsprintf(charbuf,"%2x",c);
hex=hex+charbuf;
}
GlobalFree(buf);
//现在hex里是你要的字符串了。
}
chenty85
2006-12-09
打赏
举报
回复
那应该怎样从缓冲区里面读数据呢?
chenty85
2006-12-08
打赏
举报
回复
我在客户端发送一串数据 16进制数为 24 39 30 30 30 31 23 00 00 2A 33 33
在服务端却只能读到 24 39 30 30 30 31 23 , 我改如何才能把整段读出来呢?
客户端部分程序
void __fastcall TForm1::Btn_sendinbyteClick(TObject *Sender)
{
char data[64];
memset(data,0x00,64);
data[0]=0x24;
data[1]=0x39; data[2]=0x30;data[3]=0x30;data[4]=0x30;data[5]=0x31;
data[6]=0x23;
data[7]=0x00; data[8]=0x00;
data[9]=0x2A;
data[10]=0x33; data[11]=0x33;
String hex;
for(int i=1;i<=64;i++)
{char buf[8];
int c=(CHAR)data[i];
wsprintf(buf,"%2x",c);
hex=hex+buf;
}
ShowMessage(hex) ;
if (Socketed)
{
Socketed->SendText(data);
}
}
服务端程序
void __fastcall TMainForm::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{ //onread
AnsiString t_data,t_ip;
char schar[255];
memset(schar,0x00,256); //初始化授受缓冲区
Socket->ReceiveBuf(schar,256);
if (!Socket->Data)
{ if (receive->Lines->Count>=5 )
{receive->Lines->Clear();}
receive->Lines->Add(schar) ;
}
}
pp616
2006-12-08
打赏
举报
回复
TCustomWinSocket::ReceiveBuf
chenty85
2006-12-07
打赏
举报
回复
呵呵 第一次发帖 而且对bcb也是初学者 见谅
本来想问90001 这串字符怎么转换成 3930303031 现在懂了
不过还是想知道Serversocket有没有这样的函数 直接类似Socket->ReceiveText()得到一串1字节的数据 类似说收到的数据是ascii码的16进制
铖邑
2006-12-07
打赏
举报
回复
楼主还没有掌握问问题的诀窍!
按字节读取socket接收到的数据=====》一个字节一个字节的接收数据?
char ch;
recv(s, &ch, 1, 0);
ansistring和byte类型怎么转换?
ansistring.c_str()可以返回字符串的存储地址
从MEMS专利数量分析我国MEMS传感器产业现状
来源:传感器专家网 MEMS传感器是采用微机械加工技术制造的新型传感器,是MEMS系统的重要分支。MEMS传感器以其优异的性能,如体积小、重量轻、成本低、功耗低、灵敏度高、可批量化生产...
收购美新!中国MEMS传感器和国外差距多大
美新半导体主营业务是MEMS传感器。MEMS传感器离我们并不遥远,大家日常使用的手机中其实就有MEMS陀螺仪。MEMS传感器在汽车、航天、航空、军事、消费电子产品等诸多方面都有广阔的应用潜力。 要说明一下,传感器和MEMS是两回事,很多传感器并不是MEMS,而是由分立器件或其他特种器件来组成的。然而,现在有一个趋势,就是用类集成电路的方式来实现传感器的功...
深企投:2025传感器产业研究——全球传感器细分市场格局与国产替代突围
重点领域市场格局:报告对 16 种传感器进行了分析,以 MEMS 传感器、压力传感器和图像传感器为例:MEMS 传感器是智能传感器核心,全球市场 2023 年有所下降后将回升,中国市场预计 2025 年达 1571.3 亿元,美日欧企业主导全球市场,国内产业以东南沿海为主;图像传感器是重要的传感器之一,CMOS 图像传感器成为主流,全球和中国市场规模不断扩大,索尼和三星在全球市场占主导地位,中国厂商份额逐步提升。全球智能传感器市场规模约占整体的 1/4,中国智能传感器市场增长快于整体。加入智能交通技术群!
MEMS传感器市场扩容 国产化水平亟待提升
在智能化的当下,MEMS传感器市场需求大幅提升,并被广泛应用于消费电子、汽车制造、物联网、航空航天、医药化工等诸多领域。但就国内而言,我国大部分高端MEMS传感器依赖进口,技术装备国产化亟待加速。 在智能化电子产品不断涌现,物联网智能终端与整机产品制造市场稳定发展的带动下,制造业对传感器更小型化、智能化、低功耗、高集成度、可大批量产及低成本等要求也随之提...
3亿撬动60亿!两度IPO折戟,国产MEMS龙头欲买“壳”上市?
其财报显示,2022-2024年营收分别为4.48亿元、4.62亿元、4.48亿元,净利润分别亏损了3140.55万元、5852.20万元、2.13亿元,亏损幅度逐渐加大。而在中国市场也同样如此,根据公开资料显示,在中国MEMS IMU市场中,国际厂商如博世、意法半导体、TDK等占据了近90%的市场份额。包括高精度定位、空气质量监测、车内心跳监测、智能车钥匙、主动降噪、热泵空调、安全气囊、发动机、BMS、车身电子稳定系统、防抱死系统(ABS)、电控悬挂以及胎压监控(TPMS)等主被动安全系统中。
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章