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

從策劃到設計制作,每一步都追求做到細膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供網(wǎng)站設計、成都做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁設計、域名注冊、虛擬主機、網(wǎng)絡營銷、VI設計、 網(wǎng)站改版、漏洞修補等服務。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進步。
C++builer與Java都提供了功能豐富的socket控件/類。這里將實現(xiàn)c++builer與Java之間的socket通信,能夠使雙方互相發(fā)送信息。在C++builer里,我們采用 ServerSocket控件做為服務器端,Java socket通信里采用Socket類做為客戶端。本示例中互相發(fā)送的都為結構體,在C++builer里定義為:
- typedef struct
- {
- int int1;
- float f;
- char ch[20];
- double d;
- } TMyMsg;
Java里發(fā)送部分是直接用的DataOutputStream 的writeXXX方法,當然也可以用內(nèi)部類轉換成byte[]進行發(fā)送。
源代碼如下:
C++builer服務器端Unit1.cpp
- #include
- #pragma hdrstop
- #include "Unit1.h"
- #include
- #pragma package(smart_init)
- #pragma resource "*.dfm"
- TForm1 *Form1;
- __fastcall TForm1::TForm1(TComponent* Owner)
- : TForm(Owner)
- {
- }
- void __fastcall TForm1::Button1Click(TObject *Sender)
- {
- ServerSocket1->Active = true;
- }
- void __fastcall TForm1::BtnSendClick(TObject *Sender)
- {
- //發(fā)送的數(shù)據(jù)要進行字節(jié)序轉換.
- TMyMsg sendmsg;
- sendmsg.int1 = htonl(30);
- sendmsg.f = ntohf(12.345);
- strcpy(sendmsg.ch,"測試數(shù)據(jù)!");
- sendmsg.d = ntohd(67.890);
- ServerSocket1->Socket->Connections[0]->SendBuf(&sendmsg,
sizeof(TMyMsg));- }
- void __fastcall TForm1::FormShow(TObject *Sender)
- {
- MemoSend->Lines->Add("int : 30");
- MemoSend->Lines->Add("float : 12.345");
- MemoSend->Lines->Add("char [20] : 測試數(shù)據(jù)!");
- MemoSend->Lines->Add("double : 67.890");
- }
- void __fastcall TForm1::ServerSocket1ClientRead(TObject
*Sender,- TCustomWinSocket *Socket)
- {
- //接收的數(shù)據(jù)字節(jié)序轉換
- TMyMsg remsg;
- Socket->ReceiveBuf(&remsg,sizeof(TMyMsg));
- int int1 = ntohl(remsg.int1);
- float f = ntohf(remsg.f);
- char *ch = new char[20];
- strcpy(ch,remsg.ch);
- AnsiString sch = StrPas(ch);
- double d = ntohd(remsg.d);
- delete [] ch;
- MemoRec->Lines->Add(int1);
- MemoRec->Lines->Add(f);
- MemoRec->Lines->Add(sch.Trim());
- MemoRec->Lines->Add(d);
- }
以上就是Java socket通信和C++之間進行通信的相關問題介紹。
新聞標題:Javasocket通信與C++之間的不解之緣
網(wǎng)站地址:http://www.5511xx.com/article/djigdpe.html


咨詢
建站咨詢
