首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络协议 >

gcc编译一个网络小程序时链接失误,求解

2013-07-01 
gcc编译一个网络小程序时链接出错,求解!#include sys/socket.h#include arpa/inet.h#include unistd.

gcc编译一个网络小程序时链接出错,求解!

#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <time.h>
#include <stdbool.h>

#define DAYTIME_SERVER_PORT 13
#define MAX_CLIENT 1000
#define MAX_LEN 80

int main(int argc, char **argv)
{
  int servFd, ret;
  int clientFd;
  struct sockaddr_in addr;

  servFd = socket(AF_INET, SOCK_STREAM, 0);
  if(servFd == -1) {
    printf("%s\n", strerror(errno));
    return -1;
  }

  memset(&addr, 0, sizeof(addr));
  addr.sin_family = AF_INET;
  addr.sin_addr.s_addr = htonl(INADDR_ANY);
  addr.sin_port = htons(DAYTIME_SERVER_PORT);

  ret = bind(servFd, (struct sockaddr*)&addr, sizeof(addr));
  if (ret != 0) {
    printf("%s\n", strerror(errno));
    return -1;
  }

  ret = listen(servFd, MAX_CLIENT);
  if (ret != 0) {
    printf("%s\n", strerror(errno));
    return -1;
  }

  time_t currentTime;
  char sendBuf[MAX_LEN];

  while (true) {
    clientFd = accpet(servFd, (struct sockaddr_in*)NULL, NULL);
    if (clientFd > 0) {
      currentTime = time(NULL);
      snprintf(sendBuf, MAX_LEN, "%s\n", ctime(&currentTime));
      write(clientFd, sendBuf, strlen(sendBuf));
      close(clientFd);
    }
    else {
      printf("error occuced when client attemp to connect\n");
    }
  }

  return 0;
}


编译命令如下:
gcc -o dayserv dayserv.c

提示的错误信息如下:
dayserv.c:(.text+0x15d): undefined reference to `accpet'
collect2: ld returned 1 exit status

这是怎么回事?按提示是链接库没链接上,但是其他socket函数怎么没提示,只提示accept呢?
按网上的方法,我试了在gcc后加-lsocket或-lwsock32也不行,提示如下:
/usr/bin/ld: cannot find -lwsock32
collect2: ld returned 1 exit status 网络程序 socket
[解决办法]
accept

这么明显的拼写错误……

热点排行