菜鸟问题,请大虾们指教:关于C/S型的自定义数据的捆绑发送和接受拆分问题。

zyb_17flash 2003-12-28 01:28:10
小弟是个菜鸟,刚刚接触网络编程,今天刚把BCB6.0中的两个控件(ClientSocket和ServerSocker)的使用看了一下,并进行了一些尝试,但我不知道怎样将自己的定义的数据发送出去,并在另一边以同样的数据结构接收。
比如定义了一个简单的数据类型
struct Node{
int flag;
char ch;
};
Node T;
我怎样将这个数据结构发送出去:是用Socket->SendBuf(&T,sizeof(T));吗?
在接收的时候用Socket->ReceiveBuf(&T,sizeof(T));但不成功,请大虾们帮帮我...
...全文
29 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljianq 2003-12-29
  • 打赏
  • 举报
回复
我测试了一下:
typedef struct tagTTest
{
int Code;
int ID;
char Name[15];
}TTest;

------------------------
接收
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
TTest tt;
if(Socket->ReceiveBuf(&tt,sizeof(TTest))==sizeof(TTest)) {
Memo1->Lines->Add(tt.Code);
Memo1->Lines->Add(tt.ID);
Memo1->Lines->Add(tt.Name);
}

}

---------------
发送:
void __fastcall TForm1::Button3Click(TObject *Sender)
{
TTest tt;
tt.Code=12;
tt.ID =28;
AnsiString str="Hello World!";
strcpy(tt.Name,str.c_str());
tt.Name[str.Length()]='\0';
ClientSocket1->Socket->SendBuf(&tt,sizeof(tt)+1);
}
ljianq 2003-12-29
  • 打赏
  • 举报
回复
可以的:
Socket->SendBuf(&T,sizeof(Node)+1);

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧