Socket傳送資料結構失敗? |
尚未結案
|
裝傻
一般會員 發表:11 回覆:14 積分:5 註冊:2005-03-17 發送簡訊給我 |
各位大大你好~
我想請問一下我的socketClint跟socketSever傳送接收的問題
我在Clinet納編寫了一各資料結構
我想要把我寫好的資料結構帶入數值
傳送至Sever端
但是它傳過去的都是"G?"
而不是我要的數值
例如:
Header是我建的資料結構
我帶入它記憶體位子讓她去抓後面13個byte
ClientSocket1->Socket->SendBuf(&Header,13);
可是它傳出去的數值都是"G?"
為什麼內?是我哪裡用錯了謝謝
http://myweb.hinet.net/home8/adan1234/sockettest.rar
|
cashyy
高階會員 發表:117 回覆:322 積分:212 註冊:2004-04-30 發送簡訊給我 |
您好!
最近小弟也在寫用Socket傳送Struct!
小弟就寫一個簡單的範例給您!
Server端 #include發表人 - cashyy 於 2005/07/28 01:33:29 |
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
裝傻:直接修正你的程式,記著你傳的是struct而非字串。 test.h struct struHeader{ //41 long length; char DeviceType[128]; int MachineID; long MessageNU; // Nb. of Body } Header; Server程式 #include "..\Test.h" //記著要加入 void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket) { Memo1->Clear(); Socket->ReceiveBuf(&Header,Socket->ReceiveLength()); Memo1->Lines->Add(IntToStr(Header.length)); Memo1->Lines->Add(IntToStr(Header.MachineID)); Memo1->Lines->Add(IntToStr(Header.MessageNU)); Memo1->Lines->Add(AnsiString(Header.DeviceType)); ServerSocket1->Socket->Connections[0]->SendBuf(&Header, sizeof(Header)); } Client程式 void __fastcall TForm1::Button2Click(TObject *Sender) { // AnsiString s="ww"; Header.length = 1111111; memcpy(Header.DeviceType,s.c_str(), s.Length()); // Header.DeviceType = (char)"ww"; Header.MachineID = 222222; Header.MessageNU = 33333333; // char *pSend = new char[1024]; SendStatus = WaitintResponse; ClientSocket1->Socket->SendBuf(&Header,sizeof(Header)); // delete pSend; } void __fastcall TForm1::ClientSocket1Read(TObject *Sender, TCustomWinSocket *Socket) { if(SendStatus==WaitintResponse) { // char *pReceive = new char[1024]; Socket->ReceiveBuf(&Header, Socket->ReceiveLength()); SendStatus = GotResponse; ShowMessage(IntToStr(Header.MachineID)); // delete pReceive; } } 請參考!Andy Chang
------
Andy Chang |
裝傻
一般會員 發表:11 回覆:14 積分:5 註冊:2005-03-17 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |