问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++用socket 做服务端,Java做客户端 可以通信吗?举例说明一哈,急...

发布网友 发布时间:2022-06-10 20:50

我来回答

1个回答

热心网友 时间:2024-09-06 12:01

当然可以,一点问题也没有啊,只要通信协议定义好,那是完全没有问题的。

//c++服务端
#include <stdio.h>
#include <Winsock2.h>
void main()
{
 WORD wVersionRequested;
 WSADATA wsaData;
 int err;
  
 wVersionRequested = MAKEWORD( 1, 1 );
  
 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 ) {
  return;
 }
  
 if ( LOBYTE( wsaData.wVersion ) != 1 ||
        HIBYTE( wsaData.wVersion ) != 1 ) {
  WSACleanup( );
  return;
 }
 SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
 
 SOCKADDR_IN addrSrv;
 addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
 addrSrv.sin_family=AF_INET;
 addrSrv.sin_port=htons(6000);
  
 bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
 
 listen(sockSrv,5);
 
 SOCKADDR_IN addrClient;
 int len=sizeof(SOCKADDR);
 while(1)
 {
  SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
  char sendBuf[50];
  sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));
  send(sockConn,sendBuf,strlen(sendBuf)+1,0);
  char recvBuf[50];
  recv(sockConn,recvBuf,50,0);
  printf("%s\n",recvBuf);
  closesocket(sockConn);
 }
 
}   

//java客户端
public class Test{
    public static void main(String[] args) throws Exception{
        Socket socket = new Socket("127.0.0.1", 6000);
        BufferedInputStream bin = new BufferedInputStream(socket.getInputStream());
        byte [] bb = new byte[1024];
        int len = bin.read(bb);
        System.out.println("接收到数据:" + new String(bb, 0 , len));
        
        BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
        bos.write("hello".getBytes());
        bos.flush();  
        bin.close();
        bos.close();
        socket.close();
    }
}

热心网友 时间:2024-09-06 11:58

当然可以,一点问题也没有啊,只要通信协议定义好,那是完全没有问题的。

//c++服务端
#include <stdio.h>
#include <Winsock2.h>
void main()
{
 WORD wVersionRequested;
 WSADATA wsaData;
 int err;
  
 wVersionRequested = MAKEWORD( 1, 1 );
  
 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 ) {
  return;
 }
  
 if ( LOBYTE( wsaData.wVersion ) != 1 ||
        HIBYTE( wsaData.wVersion ) != 1 ) {
  WSACleanup( );
  return;
 }
 SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
 
 SOCKADDR_IN addrSrv;
 addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
 addrSrv.sin_family=AF_INET;
 addrSrv.sin_port=htons(6000);
  
 bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
 
 listen(sockSrv,5);
 
 SOCKADDR_IN addrClient;
 int len=sizeof(SOCKADDR);
 while(1)
 {
  SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
  char sendBuf[50];
  sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));
  send(sockConn,sendBuf,strlen(sendBuf)+1,0);
  char recvBuf[50];
  recv(sockConn,recvBuf,50,0);
  printf("%s\n",recvBuf);
  closesocket(sockConn);
 }
 
}   

//java客户端
public class Test{
    public static void main(String[] args) throws Exception{
        Socket socket = new Socket("127.0.0.1", 6000);
        BufferedInputStream bin = new BufferedInputStream(socket.getInputStream());
        byte [] bb = new byte[1024];
        int len = bin.read(bb);
        System.out.println("接收到数据:" + new String(bb, 0 , len));
        
        BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
        bos.write("hello".getBytes());
        bos.flush();  
        bin.close();
        bos.close();
        socket.close();
    }
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 火锅餐厅厨房有哪些 小火锅厨房设备有哪些 可不可以用php编写服务器,用java编写客户端? 网上的手工活是不是真的 祁阳的农合保在异地的报销比例是多少? 炉石传说显卡要求 cpu是联发科mt6582下载炉石传说选择什么格式? 联想vibe x2 to 炉石传说用什么cpu miui7炉石传说cpu型号怎么选 我是小米手机。我图库里的照片被我无意全删了咋办?咋恢复啊!不是有云备... 苹果咋找回删除的照片 英特尔酷睿i510400适合笔记本电脑吗 PSP-3004的中文说明书 英魂之刃口袋版什么英雄最强 英魂之刃中谁最好 英魂之刃什么英雄厉害,8100最凶英雄分析 英魂之刃adc哪个强 英魂之刃ADC最强排 英魂之刃口袋版ADC哪个厉害 最强ADC英雄排行榜 上有个耳朵什么意思 六级作文有哪些题型? 上有个耳朵什么意思 华域数安视频网关之间如何连接?可以和交换机联动吗 男朋友欠8万信用卡要分手吗 男朋友玩游戏欠信用卡钱,还能和他相处吗? ...三个月才告诉我之前为了满足前女友的物质欠信用卡一笔债,要还两年... 一般说的“合金”都是指什么呢 什么叫铬合金首饰 什么是合金材质饰品 中国古代言行一致的人及事例或成语 立品早防冯妇虎 读书不好叶公龙 整体怎么解释,有什么典故啊??? 急求诚信的事例 成语典故心解之八十九:内外相应 表里如一的成语故事 大家好,VC,VB,C++哪个适合做上位机? 求教,用什么编程语言做三维上位机比较容易上手,本人学过C语言 本人有c语言编程基础,但想用VC做上位机,希望有大神指教,以及给予各种... 土豆咋做薯条 补充什么维生素,在脖子上吸不出草莓 为什么我在手背上吸不出吻痕?(我是女的) 男票为什么不在我脖子上吸草莓 一年四季都在用的空调,应该如何清洗呢?需要注意什么? 刚注册的qq为什么登录不了微信?