这个小测试仅仅是为了证明一点:掌握了原理后,语言不再是问题,c++和java也可以实现“通婚”。
C++服务器端代码:
#include<winsock2.h>
#include<iostream>
using namespace std;
int main(){
SOCKET ServerSocket; //服务器
string client_ip ;//客户对应ip
int port=9090;//端口号
cout<<"C++服务器初始化!....."<<endl;
//初始化winsock
WSADATA wsaD; //WSADATA结构被用来保存函数WSAStartup返回的 Windows Sockets初始化信息。
WSAStartup(MAKEWORD(1,1),&wsaD); //初始化Windows Sockets DLL
//一、创建监听套接字 ,TCP
ServerSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
//af:协议地址家族。创建TCP/UDP套接字时该参数为AF_INET。
//type:协议的套接字类型。有SOCK_STREAM、SOCK_DGRAM和SOCK_RAM 3种类型
//protocol:协议。对于SOCK_STREAM套接字类型,该字段为IPPROTO_TCP或为0,
// 对于SOCK_DGRAM套接字类型,该字段为IPPROTO_UDP或为0
// 二、绑定主机地址和监听套接字
struct sockaddr_in server_addr; //主机地址
cout<<"主机地址"<<server_addr.sin_family<<endl;
server_addr.sin_family = AF_INET; //协议地址家族
cout<<"协议地址家族"<<server_addr.sin_family<<endl;
server_addr.sin_port = htons(port); //指定端口
cout<<"服务器端口:"<<port<<endl;
cout<<"server_addr.sin_port:"<<server_addr.sin_port<<endl;
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
// cout<<"server_addr.sin_addr.s_addr: "<<server_addr.sin_addr.s_addr<<endl;
bind(ServerSocket,(struct sockaddr *)&server_addr,sizeof(server_addr));
//三、启动监听
listen(ServerSocket,5);
while(true){
//四、连接
struct sockaddr_in c_addr; //客户地址
int addr_len =sizeof(c_addr);
SOCKET clientsock = accept(ServerSocket,(struct sockaddr*)&c_addr,&addr_len); //通过监听套接字创建连接套接字
client_ip = inet_ntoa(c_addr.sin_addr);
cout<<"one java client is coming...";
//五、收发数据
//具体通信处理
}
//六、关闭
//system("PAUSE");
return 0;
}
注意:要将socket动态库libws2_32.a添加到linker: C:/Dev-Cpp/lib/libws2_32.a 中,具体添加方法网上有。如果需要可以给我留言。
java客户端代码:
写道
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) throws Exception{
Socket clientSocket = new Socket("192.168.1.103",9090);
//收发数据,具体通信处理
//...............................
clientSocket.close();
}
效果:

至此,c++和java的“Socket联姻”就完成了,接下来要怎么进行工作,你说了算!

- 大小: 31.1 KB
分享到:
相关推荐
Java和C++之间的Socket...总之,Java和C++通过Socket通信涉及到网络编程的基本概念、数据类型转换、错误处理以及跨平台兼容性等多个方面。理解并熟练掌握这些知识点,可以有效地实现两个不同语言的程序间的高效通信。
在IT领域,网络通信是应用程序之间交互的重要方式之一,Socket编程是实现这一目标的基础工具。本教程将深入探讨如何在C/C++服务器环境下利用Visual Studio 2010与Java客户端环境下的Eclipse进行Socket通信。 一、C/...
总结起来,Java和C++通过Socket进行通信,涉及到的关键概念包括TCP/IP协议、Socket接口、网络流的读写以及跨语言的数据编码与解码。这种通信方式灵活性高,但需要对网络编程有深入的理解才能有效地实现和维护。
通过分析和学习这些代码,开发者可以更好地理解和掌握Java和C++间的网络通信技术。 总之,Java使用非阻塞Socket与C++通信是一个涉及到多线程、网络编程、数据序列化和并发处理等多个技术领域的复杂过程。理解并熟练...
本示例探讨了如何使用C++实现服务器端,并用Java编写客户端,通过Socket进行通信。Socket编程是网络编程的基础,它允许两个不同的进程在同一个网络上进行通信。下面将详细介绍这个主题及其相关知识点。 1. **Socket...
Socket编程是实现网络通信的一种基础方式,它允许不同计算机上的应用程序之间建立连接并交换数据。 首先,我们关注C++服务器端。`FileNetServerCpp`很可能是一个实现了Socket服务端的C++源代码文件。在C++中,我们...
本文将深入探讨如何在Java和C++之间通过Socket进行结构体的发送与接收。 首先,我们需要理解Socket通信的基本原理。Socket是一种在两台计算机之间建立连接的协议,它允许数据在网络中传输。在Java中,我们可以使用`...
在Android开发中,有时我们需要进行Java层与C/C++(JNI)层的通信,以便利用C/C++的高性能优势处理一些底层任务。本教程将详细解释如何在Android中实现Java和C的Socket通信,特别是在涉及文件描述符传递的场景下。 ...
Socket编程是一种常见的网络通信机制,它允许不同计算机上的进程通过网络进行数据交换。在这个场景中,我们关注的是C++编写的服务器和Java编写的客户端如何利用Socket进行通信。下面将详细介绍这个过程。 首先,让...
本实例通过C++实现服务端,Java实现客户端,展示了这两种语言如何进行有效的网络通信。 首先,C++的网络通信主要依赖于标准模板库(STL)中的`<iostream>`和Boost库或POSIX套接字。服务端通常会监听一个特定的端口,...
Java SocketCAN是一个用于在Linux环境下通过Java编程语言与CAN(Controller Area Network)总线通信的库。这个库允许开发者在Java应用程序中实现低级别的CAN数据帧收发,从而无需深入理解底层操作系统或C/C++编程。...
本资源"**c++--java,socket.zip**"提供了一种实现C++与Java之间通过Socket进行通信的方法。Socket编程是一种标准的网络通信协议,允许不同计算机上的应用程序之间建立连接并交换数据。 首先,我们要理解Socket的...
本话题将探讨如何使用C++客户端与Java(通过Netty框架)服务器端实现TCP通讯,并涉及数据序列化工具Protocol Buffers(protobuf)在两者之间的交互。 首先,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节...
2. **Socket编程**:无论是C++还是Java,都可以使用socket编程来实现网络通信。客户端(C++)可以通过创建socket连接到服务器端(Java)的指定端口,发送请求并接收响应。Java服务器端同样需要开启一个socket监听,...
在IT领域,跨平台通信是常见的需求,而Qt和Java作为两种不同的开发框架,通过Socket进行通信能够实现数据的高效交换。本主题聚焦于“Qt与Java之间的Socket通讯”,其中消息格式采用类似JSON的结构,Qt作为服务端,...
本主题将深入探讨如何利用Socket编程实现基于TCP/IP协议的网络通信,涵盖从建立连接、监听请求到发送和接收数据的全过程。 1. **网络协议基础** - TCP/IP协议族:Transmission Control Protocol/Internet Protocol...
- **JNI(Java Native Interface)**:Java提供JNI接口,允许Java代码直接调用C/C++的库,但这通常不适用于网络通信。 - **Protocol Buffers**:Google开发的序列化框架,支持多种语言,包括Java和C++,可用于...
1. **Java Socket编程**:Java的Socket类提供了网络通信的基础,服务端通常使用ServerSocket类监听特定端口,等待客户端连接。当连接建立后,通过Socket对象进行数据的读写。在这个项目中,Java服务端开启一个Socket...
在IT行业中,网络通信是至关重要的部分,而Socket编程则是实现这一目标的关键工具。本文将深入探讨基于Socket实现Ping功能的源代码,涉及到的主要知识点包括Socket编程、原始套接字(SOCK_RAW)以及ICMP(Internet ...
在这个"通过JNI实现C++与JAVA相互调用之TCP编程"的示例中,我们探讨的是如何使用JNI来实现TCP通信,其中C++作为底层通信引擎,而Java则负责上层应用逻辑。 首先,TCP(Transmission Control Protocol)是一种面向...