[学习总结]一个极简单的tcp服务器端(只写核心代码,注释详细版)

搭建一个tcp回射服务器,只要围绕着几个基本创建步骤写就好了

  1. 创建套接字
  2. 设置服务器地址信息
  3. 绑定地址和端口
  4. 开始监听
  5. 接受客户端链接
  6. 接受数据
  7. 发送数据回客户端
#define PORT 8088//设个端口
#define BUFF_SIZE 1024

int main(int argc, char* argv[])
{   
    //定义服务器,客服端套接字
    int server_socket,client_socket;
    //创建套接字
    server_socket=socket(AF_INET,SOCK_STREAM,0);
    //定义网络通信地址结构体
    struct sockaddr_in server_addr,client_addr;
    int buf[BUFF_SIZE];//存写读的

    //设置服务器地址信息
    server_addr.sin_family=AF_INET;//用来定义是哪种地址族,此为ipv4
    server_addr.sin_addr.s_addr=INADDR_ANY;//转换服务器ip地址
    server_addr.sin_port=htons(PORT);//用来保存端口号,htons函数是用来转换大小端的

    //绑定地址和端口号
    bind(server_socket,(struct sockaddr*)&server_addr,sizeof(server_addr));
    //第一个参数是用socket()函数创建的文件描述符也就是前面的server_socket
    //第2个参数指向一个结构为sockaddr参数的指针
    //第三个是第二个参数的长度也就是sizeof(...)

    //开始监听
    listen(server_socket,64);//第二个参数是链接后的队列长度最大128

    socklen_t len=sizeof(client_addr);//定义客户端地址的长度
    //socklen_t是一种数据类型用于表示socket地址结构长度
    
    //接受数据
    client_socket=accept(server_socket,(struct sockaddr*)&client_addr,&len);
    //服务器套接字,客户端地址,客户端地址长度

    //接受的数据开读
    int ret=read(client_socket,buf,sizeof(buf));
    //发送数据回客户端
    write(1,buf,sizeof(ret));
    return 0;
}

:此客户端链接后只能说一句话就会结束,想要多说可以加while(1)循环,然后还可以自己为一些重要步骤加个if判断什么的可以更好的实现程序的维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值