栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C/C++网络编程:TCP基础编程

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C/C++网络编程:TCP基础编程

C/C++网络编程:TCP基础编程
  • TCP Server(Linux)demo
#include 
#include 
#include 
#include 
#include 

#define CHECK_POINT(x, y) {if((x) < 0){printf("%s error!n", y);}}

typedef struct sockaddr sockaddr;
typedef struct sockaddr_in sockaddr_in;
const char * ip = "127.0.0.1";
const uint16_t port = 39000;

int main()
{
    int sock, ret;
    sockaddr_in addr, peer;

    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = inet_addr(ip);
    addr.sin_port = htons(39000);

    sock = socket(AF_INET, SOCK_STREAM, 0);
    
    ret = bind(sock, (sockaddr *)&addr, sizeof(addr));
    CHECK_POINT(ret, "bind");

    ret = listen(sock, 5);
    CHECK_POINT(ret, "listen");

    while(true)
    {
        printf("TCP Server Running...n");

        socklen_t peer_len = sizeof(peer);
        ret = accept(sock, (sockaddr *)&peer, &peer_len);

        char * peer_ip = inet_ntoa(peer.sin_addr);
        uint16_t peer_port = ntohs(peer.sin_port);

        printf("accept from %s:%d connection...n", peer_ip, peer_port);
    }

    return 0;
}
  • TCP Client(Linux)demo
#include 
#include 
#include 
#include 
// #include 
#include 

#define CHECK_POINT(x, y) {if((x) < 0){printf("%s error!n", y);}}

typedef struct sockaddr sockaddr;
typedef struct sockaddr_in sockaddr_in;
const char * ip = "127.0.0.1";
const ushort port = 39000;

int main()
{
    int sock, ret;
    sockaddr_in addr;

    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = inet_addr(ip);
    addr.sin_port = htons(port);

    sock = socket(AF_INET, SOCK_STREAM, 0);

    ret = connect(sock, (sockaddr *)&addr, sizeof(addr));
    CHECK_POINT(ret, "connect");

    return 0;
}
  • TCP Client(Windows)demo
#include 
// #include 
// #include 
// #include 
#include 
#include 

#define CHECK_POINT(x, y) {if((x) < 0){printf("%s error!n", y);}}

typedef struct sockaddr sockaddr;
typedef struct sockaddr_in sockaddr_in;
const char * ip = "127.0.0.1";
const USHORT port = 39000;

int main()
{
    int sock, ret;
    sockaddr_in addr;

    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = inet_addr(ip);
    addr.sin_port = htons(port);

    WSADATA wsaData;
    if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
        printf("WSAStartup error!n");

    sock = socket(AF_INET, SOCK_STREAM, 0);

    ret = connect(sock, (sockaddr *)&addr, sizeof(addr));
    CHECK_POINT(ret, "connect");

    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511875.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号