Java socket通信与C++之间的不解之缘
来源:互联网 发布:yy淘宝刷单兼职靠谱吗 编辑:程序博客网 时间:2024/05/19 13:26
Java socket通信如何才能完成于C++之间的通信问题。下面我们就来详细的看看相关的代码。希望你从代码中找到所需答案。
AD:
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++之间进行通信的相关问题介绍。
- Java socket通信与C++之间的不解之缘
- Java与C之间的socket通信
- Java与C之间的socket通信
- Java与C之间的socket通信
- C Socket与Java Socket之间的通信
- c++builer与java之间的socket通信
- JAVA和C之间的socket通信
- Socket:java与C之间的文件传送<1>(C语言之间的通信)
- Socket:java与C之间的文件传送<1>(C语言之间的通信)
- Socket:java与C之间的文件传送<2>(JAVA语言之间的通信)
- Socket:java与C之间的文件传送<2>(JAVA语言之间的通信)
- Socket:java与C之间的文件传送<4>(JAVA与C通信)
- Socket:java与C之间的文件传送<4>(JAVA与C通信)
- 我与java的不解之缘
- java与c语言之间的socket通信—java客户端c服务器端
- java与c语言之间的socket通信—c客户端java服务器端
- java与c之间的socket通讯
- Android与C程序之间的socket通信
- Design pattern学习笔记 – observer pattern
- 装饰模式
- android组件
- linux常用命令
- DataSet 过滤方法
- Java socket通信与C++之间的不解之缘
- 第五章 数组和广义表
- TCP: SYN ACK FIN RST PSH URG 详解
- 相机标定 张正友的研究
- [java] 本地服务器正常,FTP上修改后在上传到服务器后页面出现乱码
- CentOS 6.0 系统 LAMP(Apache+MySQL+PHP) 安装步骤
- ios单例模式的使用
- 测试驱动开发(TDD)
- 采用_beginthread/_beginthreadex函数创建多线程