簡體   English   中英

C語言中的Accept()-套接字編程

[英]Accept() in C - Socket Programming

我正在嘗試使用以下示例代碼對服務器進行編碼 ,但特別是在處理這些語句時遇到了麻煩。

int Accept(int s, struct sockaddr *addr, socklen_t *addrlen) 
{
     int rc;

     if ((rc = accept(s, addr, addrlen)) < 0)
          unix_error("Accept error");
      return rc;
}
...

socklen_t clientlen = sizeof(struct sockaddr_storage); 
int connectFd = Accept(listenfd, (SA *)&clientaddr, &clientlen)

如果我要使用SA ,則會顯示以下錯誤:

server.c:175:36: error: ‘SA’ undeclared (first use in this function)  
   connectFd = accept(listenFd, ( SA *  )&clientaddr, &c);  

server.c:175:36: note: each undeclared identifier is reported only once for   each function it appears in   server.c:175:40: error:
expected expression before ‘)’ token  
   connectFd = accept(listenFd, (SA * ) &clientaddr, &c);  
server.c:175:18: error: too few arguments to function ‘accept’  
   connectFd = accept(listenFd, (SA *)&clientaddr, &c);

有什么辦法解決這個問題?

您的程序中未定義類型SA ,編譯器找不到它,您可能想在程序中添加以下typedef:

typedef struct sockaddr SA;

暫無
暫無

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

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