gpt4 book ai didi

C++套接字,客户端无法向java服务器发送消息

转载 作者:太空宇宙 更新时间:2023-11-04 05:27:58 25 4
gpt4 key购买 nike

我正在尝试让两个套接字(一个用于发送,另一个用于接收)工作。

现在我可以接收但无法发送。服务器是用java编写的,我正在尝试与用c++编写的客户端连接。

这是客户端部分,我正在打开一个套接字以在 if 语句中发送,如果表达式为 false,我想发送一条消息,但它不起作用。

if (function == "connect_to_server" ){
status_s = getaddrinfo(&host_const[0], &port_const[0], &host_info_s, &host_info_list_s);

if (status_s != 0) std::cout << "getaddrinfo error" << gai_strerror(status_s) ;


std::cout << "Creating a sending socket..." << std::endl;
socketfd_s = socket(host_info_list->ai_family, host_info_list->ai_socktype,
host_info_list->ai_protocol);
if (socketfd_s == -1) std::cout << "socket error " ;

std::cout << "Host: " << &host_const[0] << std::endl;
std::cout << "Port: " << &port_const[0] << std::endl;
std::cout << "function: " << function << std::endl;
function.erase(std::remove(function.begin(), function.end(), '\n'), function.end());

std::cout << "Connect()ing..." << std::endl;
status_s = connect(socketfd_s, host_info_list_s->ai_addr, host_info_list_s->ai_addrlen);
if (status_s == -1) std::cout << "connect error" ;
cout << "socket : " << socketfd_s ;


std::cout << "'Client connected....." << std::endl;
}
else
std::cout << "send()ing total message on anwser..." << std::endl;
char *msg_s = "some_string";
int len_s;
ssize_t bytes_sent_s;
std::cout << msg_s;
len_s = strlen(msg_s);
std::cout << len_s << std::endl;
std::cout << "Message not sent...." << std::endl;
bytes_sent_s = send(socketfd_s, msg_s, len_s, 0);
//send(socketfd_s, msg_s, len_s, 0);
std::cout << "Message sent....\n" << std::endl;
std::cin.ignore();
cout << "param1" << socketfd_s;
cout << "param2" << len_s;
cout << "param3" << msg_s;
}

与服务器的连接已建立,但字符串未发送到服务器。啊,整个过程运行一段时间 (1){},以便能够接收多于一条消息。

编辑:我忘了提及,启动客户端后不会发送任何内容,但是如果我用 ctrl - c 终止它,消息就会发送到服务器。

提前谢谢,

梅尔

最佳答案

请记住,Java 中的字符是两个字节,而不是像 C 中的 1。您应该尝试 std::wstring。

另一个想法:使用字符串的长度加 1(在本例中为 2),在字符串末尾添加 0(或两个零字节)。了解服务器期望什么会很有用。

关于C++套接字,客户端无法向java服务器发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28368163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com