gpt4 book ai didi

c++ - winsock2发送和接收

转载 作者:行者123 更新时间:2023-11-28 06:53:29 25 4
gpt4 key购买 nike

我搜索过论坛,但找不到适合我的问题的答案。我打算做一点登录程序,所以我想发送数据作为登录名在编辑框中,然后发送数据在第二个编辑框中作为密码。

int ldata2 = send(Socket, buffs, len, 0);//send login via socket
//send pass via socket
int passData = send(Socket, buffPass, lenPass, 0);

以上说明由客户处理。在服务器端,当我以这种方式调用 recv 时:

int dt = recv(SocketM[i], 
strings,
128,
0);

int errsock = WSAGetLastError();
if(errsock != WSAEWOULDBLOCK && errsock != 0)
{
std::cout << "ERR CODE " << errsock;
//shutdown(SocketM[Client]);
closesocket(SocketM[Client]);
break;
}
int passdt = recv(SocketM[i],
passstrings,
128,
0);
std::cout << strings << std::endl;//Log and Password in the same buff :(
std::cout << passstrings //nothing in buffer why?

我从 buffs 获取值字符串数据,从 buffPass 获取数据,而不仅仅是从 buffs 例如:如果在登录编辑框中是“Log”,在 Pass 编辑框中是“Pass”,我得到 LogPass但我想将日志中的数据分开到一个字符串,并将数据从传递到第二个。请帮我请帮我。

最佳答案

TCP 是一种字节流协议(protocol)。如果你想分隔消息,你可以通过分隔符、长度字前缀、自描述协议(protocol)(如 XML)、类型-长度-值协议(protocol)...

注意检查WSAGetLastError() 是无效的,除非 一个错误:即在这种情况下,如果recv() 返回-1.

关于c++ - winsock2发送和接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23462274/

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