`
freewxy
  • 浏览: 342832 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

c++与java通过socket实现网络通信的测试

阅读更多



 这个小测试仅仅是为了证明一点:掌握了原理后,语言不再是问题,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
分享到:
评论
3 楼 freewxy 2010-10-19  
贾懂凯 写道
在搞C++?

试试手,本来想用c实现的,没弄好,先弄一个c++实现
2 楼 javafound 2010-10-19  
继续!
1 楼 贾懂凯 2010-10-19  
在搞C++?

相关推荐

    java与c++通过socket通信

    Java和C++之间的Socket...总之,Java和C++通过Socket通信涉及到网络编程的基本概念、数据类型转换、错误处理以及跨平台兼容性等多个方面。理解并熟练掌握这些知识点,可以有效地实现两个不同语言的程序间的高效通信。

    C/C++服务器与Java客户端进行socket通信

    在IT领域,网络通信是应用程序之间交互的重要方式之一,Socket编程是实现这一目标的基础工具。本教程将深入探讨如何在C/C++服务器环境下利用Visual Studio 2010与Java客户端环境下的Eclipse进行Socket通信。 一、C/...

    Java c++ socket通信

    总结起来,Java和C++通过Socket进行通信,涉及到的关键概念包括TCP/IP协议、Socket接口、网络流的读写以及跨语言的数据编码与解码。这种通信方式灵活性高,但需要对网络编程有深入的理解才能有效地实现和维护。

    java使用socket和c++通信

    通过分析和学习这些代码,开发者可以更好地理解和掌握Java和C++间的网络通信技术。 总之,Java使用非阻塞Socket与C++通信是一个涉及到多线程、网络编程、数据序列化和并发处理等多个技术领域的复杂过程。理解并熟练...

    C++写的服务器与Java写的客户端通过Socket通信C++代码

    本示例探讨了如何使用C++实现服务器端,并用Java编写客户端,通过Socket进行通信。Socket编程是网络编程的基础,它允许两个不同的进程在同一个网络上进行通信。下面将详细介绍这个主题及其相关知识点。 1. **Socket...

    C++服务器与java进行socket通信案例

    Socket编程是实现网络通信的一种基础方式,它允许不同计算机上的应用程序之间建立连接并交换数据。 首先,我们关注C++服务器端。`FileNetServerCpp`很可能是一个实现了Socket服务端的C++源代码文件。在C++中,我们...

    Java和c++的Socket通信如何发送结构体

    本文将深入探讨如何在Java和C++之间通过Socket进行结构体的发送与接收。 首先,我们需要理解Socket通信的基本原理。Socket是一种在两台计算机之间建立连接的协议,它允许数据在网络中传输。在Java中,我们可以使用`...

    android中java和C的socket通信demo

    在Android开发中,有时我们需要进行Java层与C/C++(JNI)层的通信,以便利用C/C++的高性能优势处理一些底层任务。本教程将详细解释如何在Android中实现Java和C的Socket通信,特别是在涉及文件描述符传递的场景下。 ...

    C++写的服务器与Java写的客户端通过Socket通信java代码

    Socket编程是一种常见的网络通信机制,它允许不同计算机上的进程通过网络进行数据交换。在这个场景中,我们关注的是C++编写的服务器和Java编写的客户端如何利用Socket进行通信。下面将详细介绍这个过程。 首先,让...

    C++和JAVA网络通信实例

    本实例通过C++实现服务端,Java实现客户端,展示了这两种语言如何进行有效的网络通信。 首先,C++的网络通信主要依赖于标准模板库(STL)中的`&lt;iostream&gt;`和Boost库或POSIX套接字。服务端通常会监听一个特定的端口,...

    java-socketcan

    Java SocketCAN是一个用于在Linux环境下通过Java编程语言与CAN(Controller Area Network)总线通信的库。这个库允许开发者在Java应用程序中实现低级别的CAN数据帧收发,从而无需深入理解底层操作系统或C/C++编程。...

    c++--java,socket.zip

    本资源"**c++--java,socket.zip**"提供了一种实现C++与Java之间通过Socket进行通信的方法。Socket编程是一种标准的网络通信协议,允许不同计算机上的应用程序之间建立连接并交换数据。 首先,我们要理解Socket的...

    c++客户端和java(Netty)服务器端tcp通讯

    本话题将探讨如何使用C++客户端与Java(通过Netty框架)服务器端实现TCP通讯,并涉及数据序列化工具Protocol Buffers(protobuf)在两者之间的交互。 首先,TCP(传输控制协议)是一种面向连接的、可靠的、基于字节...

    c++,java跨语言通信

    2. **Socket编程**:无论是C++还是Java,都可以使用socket编程来实现网络通信。客户端(C++)可以通过创建socket连接到服务器端(Java)的指定端口,发送请求并接收响应。Java服务器端同样需要开启一个socket监听,...

    qt与java之间socket通讯

    在IT领域,跨平台通信是常见的需求,而Qt和Java作为两种不同的开发框架,通过Socket进行通信能够实现数据的高效交换。本主题聚焦于“Qt与Java之间的Socket通讯”,其中消息格式采用类似JSON的结构,Qt作为服务端,...

    基于Socket的网络通信设计

    本主题将深入探讨如何利用Socket编程实现基于TCP/IP协议的网络通信,涵盖从建立连接、监听请求到发送和接收数据的全过程。 1. **网络协议基础** - TCP/IP协议族:Transmission Control Protocol/Internet Protocol...

    java和C++通信结构体发送

    - **JNI(Java Native Interface)**:Java提供JNI接口,允许Java代码直接调用C/C++的库,但这通常不适用于网络通信。 - **Protocol Buffers**:Google开发的序列化框架,支持多种语言,包括Java和C++,可用于...

    java与c++传文件程序

    1. **Java Socket编程**:Java的Socket类提供了网络通信的基础,服务端通常使用ServerSocket类监听特定端口,等待客户端连接。当连接建立后,通过Socket对象进行数据的读写。在这个项目中,Java服务端开启一个Socket...

    基于socket实现Ping功能的源代码

    在IT行业中,网络通信是至关重要的部分,而Socket编程则是实现这一目标的关键工具。本文将深入探讨基于Socket实现Ping功能的源代码,涉及到的主要知识点包括Socket编程、原始套接字(SOCK_RAW)以及ICMP(Internet ...

    通过JNI实现C++与JAVA相互调用之TCP编程

    在这个"通过JNI实现C++与JAVA相互调用之TCP编程"的示例中,我们探讨的是如何使用JNI来实现TCP通信,其中C++作为底层通信引擎,而Java则负责上层应用逻辑。 首先,TCP(Transmission Control Protocol)是一种面向...

Global site tag (gtag.js) - Google Analytics