社区
网络及通讯开发
帖子详情
请教关于按字节读取socket接收到的数据
chenty85
2006-12-07 12:43:05
请问如何按字节读取socket接收到的数据
ansistring和byte类型怎么转换?
...全文
320
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()可以返回字符串的存储地址
Java
Socket
正确
读取
数据
姿势
本文深入探讨了
Socket
通讯在Android与外设、SSL服务通讯中的应用,重点解决了
socket
通讯层自写和IO流不当使用导致的问题。文章详细介绍了
Socket
使用流程,包括创建、连接、读写
数据
及关闭,并提供了
字节
流和字符流的使用建议。针对长连接的特殊需求,提出了
读取
数据
的优化方案,避免了
数据
读取
不完整和阻塞现象。
Java用
Socket
解析
字节
流
数据
本文介绍如何使用Java
Socket
处理TCP连接中的
字节
流
数据
。主要内容包括选择
Socket
连接与
数据
读取
方式、实现内部
数据
协议的顶层解析流程以及解决
字节
数据
到Java
数据
类型的转换问题。
Socket
读取
数据
该文章描述了一个Java
Socket
通信的相关配置,包括
读取
字节
的
字节
序、最大缓存值、
数据
包结构协议等。同时,文章提到了
数据
实体类、消息
数据
格式接口、
Socket
读取
数据
行为以及异常处理类的定义,实现了
Socket
的
读取
数据
接口和
读取
数据
流程。
java
socket
字节
读取
_Java
socket
字节
流传输示例解析
本文提供了一个Java
Socket
字节
流传输的示例,包括服务端与客户端的实现代码。服务端监听5020端口,
接收
客户端发送的
数据
,并将
接收
到的
字节
转换为十六进制字符串输出。
SOCKET
数据
读取
和
数据
发送
本文详细介绍了在使用C++进行
SOCKET
编程时,如何理解和处理read与write函数的返回值,特别是针对阻塞和非阻塞模式下的异常情况。read函数会在
接收
缓冲区有
数据
时返回,而write函数在阻塞模式下会等待足够的缓冲区空间。返回值0可能表示EOF或写入0
字节
,负值则表示错误,需根据errno判断具体异常。
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章