小编Nmz*_*zzz的帖子

连接:非套接字上的套接字操作

我是unix网络编程的新手,我曾尝试编写一个程序来连接到Google的服务器.但是,我在使用connect()函数时出错.(OS:OS X)

连接错误:非套接字上的套接字操作

我已经工作了4个小时,但我找不到问题.这是我的代码:

#define SERVPORT 80

int main (int argc, char **argv)
{
  int i, sockfd;
  struct hostent *host;
  struct sockaddr_in serv_addr;

  if ( (host = gethostbyname(argv[1])) == NULL) {
    printf("gethostbyname error\n");
    exit(1);
  }

  for (i = 0; host->h_addr_list[i]; i++) {
    if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0) == -1)) {
    printf("socket error\n");
    exit(1);
    }

    bzero(&serv_addr, sizeof(serv_addr));
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_port = htons(SERVPORT);
    serv_addr.sin_addr = *( (struct in_addr *)host->h_addr_list[i]);
    const char *ip = inet_ntoa(serv_addr.sin_addr);
    printf("connect to %s\n", ip);

    if …
Run Code Online (Sandbox Code Playgroud)

c unix sockets networking

8
推荐指数
1
解决办法
3万
查看次数

使用sleep()时,C中的puts()和printf()之间的区别

我想知道使用sleep()函数时puts()和printf()函数之间的区别.

这是我的代码(C语言):

printf("hello, world");
sleep(1);
printf("Good, bye!");
Run Code Online (Sandbox Code Playgroud)

编译并运行程序后,它似乎先睡了然后打印"你好,世界好,再见!"

但是,如果使用puts()而不是printf(),它将打印"hello,world"然后睡眠,最后打印"Good,bye".

puts("hello, world");
sleep(1);
puts("Good, bye!);
Run Code Online (Sandbox Code Playgroud)

c sleep puts

7
推荐指数
2
解决办法
3329
查看次数

标签 统计

c ×2

networking ×1

puts ×1

sleep ×1

sockets ×1

unix ×1