网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月10日漏签0天
编程吧 关注:372,282贴子:1,634,919
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 3回复贴,共1页
<<返回编程吧
>0< 加载中...

【提问】关于C++与java socket 通信的乱码问题(UDP)

  • 只看楼主
  • 收藏

  • 回复
  • 渴死的小鱼123
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
C++ UDP 服务器端 utf-8编码,代码如下
#include <stdio.h>
#include <Winsock2.h>
void main()
//编码方式Utf-8
{
SOCKET socket1;
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2,1),&wsaData)) //调用Windows Sockets DLL
{
printf("Winsock无法初始化!\n");
WSACleanup();
return;
}
struct sockaddr_in local;
struct sockaddr_in from;
int fromlen =sizeof(from);
local.sin_family=AF_INET;
local.sin_port=htons(27015); ///监听端口
local.sin_addr.s_addr=INADDR_ANY; ///本机
socket1=socket(AF_INET,SOCK_DGRAM,0);
bind(socket1,(struct sockaddr*)&local,sizeof(local));
while (1)
{
char buffer[1024]="\0";
printf("等待-------------\n");
if (recvfrom(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&from,&fromlen)!=SOCKET_ERROR)
{
printf("消息来自 %s--%s\n",inet_ntoa(from.sin_addr),buffer);
sendto(socket1,buffer,sizeof(buffer),0,(struct sockaddr*)&from,fromlen);
}
}
closesocket(socket1);
}


  • 渴死的小鱼123
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
java代码如下,UDP 客户端 utf-8编码
package xj.ne;
/**
* UDP客户端 UTF-8编码
*/
import java.io.*;
import java.net.*;
public class UDPClient{
public static void main(String[] args)throws IOException{
DatagramSocket client = new DatagramSocket();
System.out.println("请输入内容");
BufferedReader wt = new BufferedReader(new InputStreamReader(System.in));
String sendStr = wt.readLine();
byte[] sendBuf;
sendBuf = sendStr.getBytes("UTF-8");
InetAddress addr = InetAddress.getByName("127.0.0.1");
int port = 27015;
DatagramPacket sendPacket
= new DatagramPacket(sendBuf ,sendBuf.length , addr , port);
client.send(sendPacket);
byte[] recvBuf = new byte[100];
DatagramPacket recvPacket
= new DatagramPacket(recvBuf , recvBuf.length);
client.receive(recvPacket);
String recvStr = new String(recvPacket.getData() , 0 ,recvPacket.getLength());
System.out.println("收到:" + recvStr);
client.close();
}
}


2025-07-10 09:48:42
广告
  • 渴死的小鱼123
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼



  • 渴死的小鱼123
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
C++出现乱码情况,


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 3回复贴,共1页
<<返回编程吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示