这个小测试仅仅是为了证明一点:掌握了原理后,语言不再是问题,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进行网络通信,传输数据
信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。 HP-Socket 对通信层完全封装,应用程序不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合...
思想与Java中的编程思想一样,只不过Java中会使用多线程技术,在Vector集合保存客户端的socket对象,而MFC框架提供了CSocket类,它是一个异步通信的类,所以看上去代码比较Java的多线程代码简单的实现了一个对多的...
前段时间整理一下代码,仿照java的mina自己做了一套C++的异步socket IO 框架。 编译环境: fedora 10 / cenos 5.4 / cygwin gcc version 4.3.2 其他linux环境没试过,不过应该也没啥问题。 使用到的库: 如果光...
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、 客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通 信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等...
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...
信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。 HP-Socket 对通信层完全封装,应用程序不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合...
)网络通信框架 HP-Socket 没有最好只有更好, 非源代码,太大无法上传,有网址可自行下载完整包 。 HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种...
用java写的项目,源码都经测试过,真实可靠,欢迎自行下载学习。用java写的项目,源码都经测试过,真实可靠,欢迎自行下载学习。用java写的项目,源码都经测试过,真实可靠,欢迎自行下载学习。用java写的项目,源码...
包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】...
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...
HP-Socket 是一套通用的高性能 TCP/UDP Socket 框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口...
用C++语言实现的一个简单的网络通信,希望能对你有点帮助
1、使用Java/C/C++/C#/Python等语言编写Socket通信程序。 2、基于TCP的SOCKET通信测试及验证。 3、TCP通信过程分析 1、端口扫描编程及验证,利用Socket connect扫描自己服务器至少1个端口 2、Socket 编程,编写...
HP-Socket是一套通用的高性能TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的TCP/UDP/HTTP通信系统,提供C/C++、C#、Delphi、E(易语言)、Java、Python等编程语言...
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...
点对点通信功能 实现网络点对点通讯程序的关键步骤就是实现信息在网络中的发送和接收。数据接收 使用的是Socket,数据发送使用的是NetworkStream。 1.1利用Socket来接收信息 TcpListener tlListen1 = new Tcp...
本地API驱动 这种类型的驱动通过客户端加载数据库厂商提供的本地代码库(C/C++等)来访问数据库,而在驱动程序中则包含了Java代码。 类型3 网络协议驱动 这种类型的驱动给客户端提供了一个网络API,客户端上的...