【发布时间】:2016-11-28 07:10:46
【问题描述】:
i 在 mac 中使用 xcode 键入套接字示例:
//
// main.c
// testsocket
//
// Created by YiranWang on 17/11/2016.
// Copyright © 2016 YiranWang. All rights reserved.
//
//#include "unp.h"
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <stdio.h>
#define SERV_PORT 9987
#define SA struct sockaddr
#define LISTENQ 1024
int main(int argc, const char * argv[]) {
struct sockaddr_in cliaddr,servaddr;
pid_t childpid;
int listenfd,connfd;
socklen_t clien;
listenfd = socket(AF_INET, SOCK_STREAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(SERV_PORT);
bind(listenfd, (SA *)&servaddr, sizeof(servaddr));
listen(listenfd, LISTENQ);
for (; ; ) {
clien = sizeof(cliaddr);
connfd = accept(listenfd, (SA *)&cliaddr, &clien);
if ((childpid = fork()) == 0) {
close(listenfd);
str_echo(connfd);
exit(0);
}
close(connfd);
}
}
【问题讨论】:
-
文字...请...
-
你显示的代码调用
str_echo。该函数在哪里定义(实现)? -
忘记链接所需的库?另外,看起来确实需要
unp.h。 -
我投票结束这个问题,因为 这个问题是由无法再复制的问题或简单的印刷错误引起的。虽然类似的问题可能是这里的主题,但这个问题的解决方式不太可能帮助未来的读者。这通常可以通过在发布之前确定并仔细检查重现问题所需的最短程序来避免。