我正在尝试打开一个从另一个套接字发送和接收数据的套接字。这个套接字的作用类似于服务器套接字,它监听一个端口然后打开一个套接字,或者接受计算机的连接请求。当我尝试运行该accept()
函数时,我得到的错误是No matching function call for accept!
我没有问过类似的问题,但他们被问到了自己的方法和函数。这不是我写的函数,它应该可以工作。我计划为此制作一个 gui 界面,以便让它在 Xcode 的目标 c 应用程序中运行。另外,在研究 c 套接字时,我看到一个网站使用了接受函数,就像我正在使用它一样,并且它有效。这是我的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
int sock, newsock, port, clilen;
char buffer[256];
struct sockaddr_in serv_addr, cli_addr;
int n;
sock = socket(AF_INET, SOCK_STREAM, 0);
bzero((char *) &serv_addr, sizeof(serv_addr));
port = 460;
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(port);
if (bind(sock, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) {
NSLog(@"Failure");
exit(1);
}
listen(sock, 5);
clilen = sizeof(cli_addr);
newsock = accept(sock, (struct sockaddr *) &cli_addr, &clilen);
}