Javasocket通信與C++之間的關系是什么

Java socket通信與C++之間的關系是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

創新互聯建站長期為成百上千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為鄒平企業提供專業的網站建設、網站設計,鄒平網站改版等技術服務。擁有十年豐富建站經驗和眾多成功案例,為您定制開發。

c++builer與Java socket通信是我們在編程中經常用到的,有不少的人還有很多問題需要解決。下面我們就來看看如何解決有關于Java socket通信與C++之間的相關問題。希望大家有所了解。

C++builer與Java都提供了功能豐富的socket控件/類。這里將實現c++builer與Java之間的socket通信,能夠使雙方互相發送信息。在C++builer里,我們采用 ServerSocket控件做為服務器端,Java socket通信里采用Socket類做為客戶端。本示例中互相發送的都為結構體,在C++builer里定義為:

typedef struct  {  int int1;  float f;  char ch[20];  double d;  } TMyMsg;

Java里發送部分是直接用的DataOutputStream 的writeXXX方法,當然也可以用內部類轉換成byte[]進行發送。

源代碼如下:

C++builer服務器端Unit1.cpp

  1. #include <vcl.h> 

  2. #pragma hdrstop  

  3. #include "Unit1.h"  

  4. #include <winsock.h> 

  5. #pragma package(smart_init)  

  6. #pragma resource "*.dfm"  

  7. TForm1 *Form1;  

  8. __fastcall TForm1::TForm1(TComponent* Owner)  

  9. : TForm(Owner)  

  10. {  

  11. }  

  12. void __fastcall TForm1::Button1Click(TObject *Sender)  

  13. {  

  14. ServerSocket1->Active = true;  

  15. }  

  16. void __fastcall TForm1::BtnSendClick(TObject *Sender)  

  17. {  

  18. //發送的數據要進行字節序轉換.  

  19. TMyMsg sendmsg;  

  20. sendmsg.int1 = htonl(30);  

  21. sendmsg.f = ntohf(12.345);  

  22. strcpy(sendmsg.ch,"測試數據!");  

  23. sendmsg.d = ntohd(67.890);  

  24. ServerSocket1->Socket->Connections[0]->SendBuf(&sendmsg, 
    sizeof(TMyMsg));  

  25. }  

  26. void __fastcall TForm1::FormShow(TObject *Sender)  

  27. {  

  28. MemoSend->Lines->Add("int : 30");  

  29. MemoSend->Lines->Add("float : 12.345");  

  30. MemoSend->Lines->Add("char [20] : 測試數據!");  

  31. MemoSend->Lines->Add("double : 67.890");  

  32. }  

  33. void __fastcall TForm1::ServerSocket1ClientRead(TObject 
    *Sender,  

  34. TCustomWinSocket *Socket)  

  35. {  

  36. //接收的數據字節序轉換  

  37. TMyMsg remsg;  

  38. Socket->ReceiveBuf(&remsg,sizeof(TMyMsg));  

  39. int int1 = ntohl(remsg.int1);  

  40. float f = ntohf(remsg.f);  

  41. char *ch = new char[20];  

  42. strcpy(ch,remsg.ch);  

  43. AnsiString sch = StrPas(ch);  

  44. double d = ntohd(remsg.d);  

  45. delete [] ch;  

  46. MemoRec->Lines->Add(int1);  

  47. MemoRec->Lines->Add(f);  

  48. MemoRec->Lines->Add(sch.Trim());  

  49. MemoRec->Lines->Add(d);  

看完上述內容,你們掌握Java socket通信與C++之間的關系是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!

網頁題目:Javasocket通信與C++之間的關系是什么
網站路徑:http://m.kartarina.com/article40/pppgeo.html

成都網站建設公司_創新互聯,為您提供標簽優化搜索引擎優化建站公司做網站移動網站建設軟件開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都網站建設公司
主站蜘蛛池模板: 成在人线av无码免费高潮喷水| 亚洲一区精品无码| 色综合热无码热国产| 亚洲中文字幕无码中文| 亚洲大尺度无码无码专线一区| 亚洲国产成人精品无码区二本| 久久中文字幕无码一区二区| 日本无码色情三级播放| 无码少妇A片一区二区三区| 亚洲国产精品无码久久一线| 永久无码精品三区在线4| 日韩一区二区三区无码影院| 西西4444www大胆无码| 无码人妻丰满熟妇区五十路| 亚洲av无码专区在线观看素人| 久久老子午夜精品无码怎么打| 国产亚洲大尺度无码无码专线 | 久久久无码精品亚洲日韩按摩| 亚洲av无码不卡私人影院| 玖玖资源站无码专区| 精品久久久久久无码中文字幕| 国产午夜av无码无片久久96| 亚洲AV无码乱码在线观看富二代| 精品无码久久久久久久久| 亚洲Av无码国产一区二区| 无码免费一区二区三区免费播放| 亚洲成A人片在线观看无码3D| 亚洲av无码片vr一区二区三区| 中文午夜人妻无码看片| 亚洲av成人中文无码专区| 久久青青草原亚洲AV无码麻豆| 日韩人妻无码一区二区三区综合部| 免费无码A片一区二三区| 无码专区人妻系列日韩精品少妇| 无码专区—VA亚洲V天堂| 无码午夜成人1000部免费视频| 亚洲av无码av制服另类专区| 久久成人无码国产免费播放| 亚洲国产精品无码久久久秋霞2 | 国产精品无码素人福利不卡| 亚洲AV无码资源在线观看|