簡體   English   中英

套接字:在服務器代碼中獲取socket()

[英]Socket: get socket() in the server code

我試圖在以下服務器代碼中返回socket()的結果:

#include "sys/socket.h"
#include "sys/types.h"
int main(void)
{   
    int listenfd = 0,connfd = 0;
    struct sockaddr_in serv_addr;
    char sendBuff[1025];  
    int numrv;  
    listenfd = socket(AF_INET, SOCK_STREAM, 0);
    printf("socket retrieve success\n");
    return(listenfd);
}

我對這段代碼執行了gcc,它運行良好,但是當我執行它時,它什么也沒有返回。

如果成功,則socket()返回新套接字的整數文件描述符。 如果有錯誤,則返回-1。 您可以檢查errno的錯誤代碼,並可以使用perror()打印出其文本版本。

請注意,您需要#include <netinet/in.h>來定義struct sockaddr_in

這可能有助於您的理解:

#include <stdio.h>
#include <errno.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>

int main(void)
{
    int listenfd = 0,connfd = 0;
    struct sockaddr_in serv_addr;
    char sendBuff[1025];
    int numrv;
    listenfd = socket(AF_INET, SOCK_STREAM, 0);
    if (listenfd == -1) {
        printf("Failed to create socket: errno = %d\n", errno);
        perror("Failed to create socket");
    }
    else
        printf("socket created, fd = %d\n", listenfd);
    return(listenfd);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM