首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Recv方法使用

Recv方法使用
EN

Stack Overflow用户
提问于 2013-10-18 14:44:32
回答 2查看 119关注 0票数 2

我正在制作一个多人游戏,我对recv函数(或者发送函数,不确定)有一个问题。

服务器端代码:

代码语言:javascript
复制
        char* UserName = new char[256];
        ZeroMemory(UserName,256);
        recv(sConnect,UserName,256,0);

        char* Password = new char[256];
        ZeroMemory(Password,256);
        recv(sConnect,Password,256,0);


        users[ ++usercount ] = new Client(UserName,Password,sConnect);

        if( users[usercount] ->GetLogInSuccesful() )
        {
            if( send(sConnect,"0x0001",6,0) == 0)
                 cout << "THIS IS **** UP";
        }
        else
        {
            usercount--;
            send(sConnect,"0x0002",6,0);
        }

客户端代码:

代码语言:javascript
复制
        send(server->getsConnect(),User,256,0); // works
        send(server->getsConnect(),Pass,256,0); // works
        char* Response = new char[6];
        ZeroMemory(Response,6);
        recv(server->getsConnect(),Response,6,0); // gets stuck here.

我可能是瞎了,不知道哪里是错误,但厌倦了看了两个小时后。如果有人能给我指明正确的方向,那就太好了。

基于评论的编辑:

我已经检查了发送函数(也编辑了代码),控制台保持干净,因此发送函数工作正常。

问题是,当我第一次添加如果我忘记了{},它进入了其他。客户端recv用于第二次发送( send(sConnect,“0x0002”,6,0));

编辑由于answere

在客户端构造函数中,用户名和密码都会被检查,因此服务器端的recv和客户端的发送都能很好地工作。

这仅仅是关于第一个发送服务器端,因为第二个工作。

编辑由于评论和答案#2

由于雷米的回答,我实际上发现我的客户端构造器中有一个bug,我修复了它。现在,发送的两条腿都不起作用:)。

这基本上是一个游戏的登录,客户端输入用户名和密码并将它们发送到服务器。然后根据密码和用户名是否正确这一事实创建一个used。GetLogInSuccesful只是从客户端函数返回一个bool,它告诉我密码和用户名是否正确。

解决问题的编辑

看起来有一个使用recv函数的蒽线程,而这个发送是由另一个recv.我讨厌这些愚蠢的错误。感谢所有的帮助和建议!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-18 14:58:46

假设recv一次返回所有字节。它也可以合法地返回一个字节。有关此问题的更完整描述,请参考this answer

这个问题影响到所有TCP初学者。

票数 2
EN

Stack Overflow用户

发布于 2013-10-18 14:55:46

如果GetLogInSuccessful()失败,则需要发送响应:

代码语言:javascript
复制
if( ...->GetLogInSuccesful() )
    send(sConnect,"0x0001",6,0);
else
    send(sConnect,"0x0000",6,0);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19452509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档