Cách lấy file descriptor của socket để dùng hàm recv

Chào mọi người, chuyện là em đang tập tành học lập trình socket. Em đang gặp vấn đề với việc nhận tin nhắn từ server bằng hàm recv cho phía client. Em không biết làm cách nào để lấy được file descriptor của socket server. Nhờ mọi người giúp em với ạ. Cám ơn mọi người.

#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include "stdlib.h"
#define PORT 8080
   
int main(int argc, char const *argv[])
{
    int sock=socket(AF_INET, SOCK_STREAM, 0);
    struct sockaddr_in client;
    int a=inet_pton(AF_INET, "127.0.0.1", &client.sin_addr);
    if(a!=1)
    {
        printf("Fail to write IP");
        exit(EXIT_FAILURE);
    }
    client.sin_port=htons(8080);
    client.sin_family=AF_INET;
    a=connect(sock, (struct sockaddr*)(&client), sizeof(client));
    if(a!=0)
    {
        printf("Fail to connect");
        exit(EXIT_FAILURE);
    }
    else printf("Sucess to connect\n");
    while (1)
    {
        char buff[1000], buff_1[1000];
        fflush(stdin);
        fgets(buff_1, 1000, stdin);
        send(sock, buff_1, 1000, 0);
        fflush(stdin);
        long int y=recv(sock, buff, 1000, MSG_PEEK);
        if(y>0)
        {
            fputs(buff, stdout);
        }
    }
}

Đây là code của em ạ. Cái đoạn cuối dùng hàm recv, tham số đầu tiên em không biết phải lấy file descriptor của socket phía server ở đâu để hoạt động trơn tru. Em chỉ có thể gửi message cho server nhưng server gửi ngược lại thì không nhận được.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?