温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java socket通信与C++之间的关系是什么

发布时间:2021-11-20 18:06:17 阅读:259 作者:柒染 栏目:编程语言
C++开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

Java socket通信与C++之间的关系是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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

#include <vcl.h> #pragma hdrstop  #include "Unit1.h"  #include <winsock.h> #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++之间的关系是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×