Cpp-Socket网络编程(二)简易客户端搭建(Mac OS环境)

0719:用socket API 四步建立客户端

1. 建立一个socket

2. 连接服务器

3. 接受服务器信息recv

4. 关闭套接字close socket

//
//  client.cpp
//  SocketStepByStep
//
//  Created by tower on 2019/7/19.
//  Copyright © 2019 tower. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#include <unistd.h>

#define SOCKET_ERROR -1

int main() {
    //1. 建立一个socket
    int _sock = socket(AF_INET, SOCK_STREAM, 0); //与服务器端不同,第三个参数无需声明使用TCP连接
    if (_sock == SOCKET_ERROR) {
        printf("socket build error!");
    } else {
        printf("socket build success!");
    }
    
    //2. 连接服务器
    sockaddr_in _sin = {};
    _sin.sin_family = AF_INET;
    _sin.sin_port = htons(4567);
    _sin.sin_addr.s_addr = inet_addr("127.0.0.1");
    int ret = connect(_sock, (sockaddr*)&_sin, sizeof(sockaddr_in));
    if (ret == SOCKET_ERROR) {
        printf("connect error!");
    } else {
        printf("connect success!");
    }
    
    //3. 接受服务器信息recv
    char recvBuf[256] = {};
    int nlen = recv(_sock, recvBuf, 256, 0); //返回接受数据的长度
    if (nlen > 0) {
        printf("message: %s", recvBuf);
    }
    
    //4. 关闭套接字close socket
    close(_sock);
    
    return 0;
}

测试客户端和服务器端的连接:

connect

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Qt调用新版HP-Socket实现UDP客户端的步骤如下: 1.下载并安装新版HP-Socket,可以在官网上下载最新版本的HP-Socket。 2.创建一个Qt的控制台应用程序,选择C++语言。 3.将HP-Socket的头文件和库文件添加到Qt项目中。 4.在Qt的main函数中调用以下代码: ```cpp HPSocket::Startup(); auto pUdpClient = CHPSocket::Construct<CUdpClient>(nullptr); pUdpClient->SetSocketListener(new CUDPSocketListener()); pUdpClient->SetRemoteAddress("127.0.0.1", 5555); if (!pUdpClient->Start()) { qDebug() << "UDP client start failed"; return -1; } char szBuffer[] = "hello world!"; int iLength = strlen(szBuffer); int iResult = pUdpClient->Send(szBuffer, iLength); if (iResult != iLength) { qDebug() << "UDP client send failed"; } HPSocket::Cleanup(); ``` 5.创建一个CUDPSocketListener类,继承于IUdpClientListener,并重写相应的事件回调函数: ```cpp class CUDPSocketListener : public IUdpClientListener { public: virtual EnHandleResult OnConnect(ITcpClient* pSender, CONNID dwConnID) override { return HR_OK; } virtual EnHandleResult OnReceive(ITcpClient* pSender, CONNID dwConnID, const BYTE* pData, int iLength) override { return HR_OK; } virtual EnHandleResult OnClose(ITcpClient* pSender, CONNID dwConnID, EnSocketOperation enOperation, int iErrorCode) override { return HR_OK; } }; ``` 6.编译并运行Qt程序,即可实现UDP客户端的功能。 需要注意的是,在使用新版HP-Socket时,需要在程序的开头调用HPSocket::Startup()函数,在程序结束时调用HPSocket::Cleanup()函数。此外,在使用CUdpClient时,需要设置远程地址和端口号,然后调用Start()函数启动客户端。发送数据时,可以调用Send()函数发送数据。接收数据时,需要在CUDPSocketListener类中重写OnReceive()函数,通过pData参数获取接收到的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值