日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Javasocket通信與C++之間的關(guān)系是什么

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

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

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

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

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

Java里發(fā)送部分是直接用的DataOutputStream 的writeXXX方法,當(dāng)然也可以用內(nèi)部類轉(zhuǎn)換成byte[]進行發(fā)送。

源代碼如下:

C++builer服務(wù)器端Unit1.cpp

  1. #include  

  2. #pragma hdrstop  

  3. #include "Unit1.h"  

  4. #include  

  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. //發(fā)送的數(shù)據(jù)要進行字節(jié)序轉(zhuǎn)換.  

  19. TMyMsg sendmsg;  

  20. sendmsg.int1 = htonl(30);  

  21. sendmsg.f = ntohf(12.345);  

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

  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] : 測試數(shù)據(jù)!");  

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

  32. }  

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

  34. TCustomWinSocket *Socket)  

  35. {  

  36. //接收的數(shù)據(jù)字節(jié)序轉(zhuǎn)換  

  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);  

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


本文名稱:Javasocket通信與C++之間的關(guān)系是什么
URL地址:http://www.dlmjj.cn/article/pppgeo.html