VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 174|回复: 1

关于完成端口接受数据问题

[复制链接]
55_avatar_middle
在线会员 anzun 发表于 2018-8-22 18:34:17 | 显示全部楼层 |阅读模式
#include<iostream>
#include <winsock2.h>
using namespace std;
#pragma comment(lib, "ws2_32.lib")
int main()
{
        //加载套接字库
        WSADATA wsaData;
        int iRet =0;
        iRet = WSAStartup(MAKEWORD(2, 2), &wsaData);
        if (iRet != 0)
        {
                cout << "WSAStartup(MAKEWORD(2, 2), &wsaData) execute failed!" << endl;
                return -1;
        }
        if (2 != LOBYTE(wsaData.wVersion) || 2 != HIBYTE(wsaData.wVersion))
        {
                WSACleanup();
                cout << "WSADATA version is not correct!" << endl;
                return -1;
        }

        //创建套接字
        SOCKET clientSocket = socket(AF_INET, SOCK_STREAM, 0);
        if (clientSocket == INVALID_SOCKET)
        {
                cout << "clientSocket = socket(AF_INET, SOCK_STREAM, 0) execute failed!" << endl;
                return -1;
        }

        //初始化服务器端地址族变量
        SOCKADDR_IN srvAddr;
        srvAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
        srvAddr.sin_family = AF_INET;
        srvAddr.sin_port = htons(9527);

        //连接服务器
        iRet = connect(clientSocket, (SOCKADDR*)&srvAddr, sizeof(SOCKADDR));
        if (0 != iRet)
        {
                cout << "connect(clientSocket, (SOCKADDR*)&srvAddr, sizeof(SOCKADDR)) execute failed!" << endl;
                return -1;
        }
        /*
        //接收消息
        char recvBuf[100];
        recv(clientSocket, recvBuf, 100, 0);
        printf("%s\n", recvBuf);
        */
        //发送消息
        for (int i=0;i<10;i++)
        {
                char sendBuf[100];
                sprintf_s(sendBuf, "Hello, This is client %d", i);
                if(send(clientSocket, sendBuf, strlen(sendBuf)+1, 0)==SOCKET_ERROR)
                {
                        printf("error: %s ",sendBuf);
                }
                Sleep(1000);
        }
       

        //清理
        closesocket(clientSocket);
        WSACleanup();

        system("pause");
        return 0;
}
上面是客户端代码,服务端用的是Syc老师的代码,
然后发现在GetQueuedCompletionStatus后面下个断点,
然后F5每条每条的放过,会发现少几条数据。
求解惑。@Syc




上一篇:70后,上位机编程不熟,现在学C++还来得及吗?
下一篇:新人报道

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

51_avatar_middle
online_admins Syc 发表于 2018-8-22 23:40:03 | 显示全部楼层
没看出什么问题,都加 Sleep 了,照理说应该没什么问题啊

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-9-20 19:36

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表