十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
c++builer与Java socket通信是我们在编程中经常用到的,有不少的人还有很多问题需要解决。下面我们就来看看如何解决有关于Java socket通信与C++之间的相关问题。希望大家有所了解。

从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供网站设计、成都做网站、网站策划、网页设计、域名注册、虚拟主机、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。
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
- #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)
 - {
 - //发送的数据要进行字节序转换.
 - TMyMsg sendmsg;
 - sendmsg.int1 = htonl(30);
 - sendmsg.f = ntohf(12.345);
 - strcpy(sendmsg.ch,"测试数据!");
 - 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] : 测试数据!");
 - MemoSend->Lines->Add("double : 67.890");
 - }
 - void __fastcall TForm1::ServerSocket1ClientRead(TObject
 
*Sender,- TCustomWinSocket *Socket)
 - {
 - //接收的数据字节序转换
 - 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++之间进行通信的相关问题介绍。