主函数()
int clilen - sizeof(servaddr)
getsockname(sockfd, (struct sockaddr*) &servaddr, clilen)
printf()
int variable
"int variable = getsockname(syntaxfunction)"
我应该如何为 getsockname() 函数初始化我的变量?
在初始化getsockanme之前我应该有int变量声明吗?
我最终将如何将我的变量应用到 printf() 以打印套接字:端口字符串?
client.c:21:14: 错误:初始化元素不是常量 21 | int cliapi = getsockname(servsock, (struct sockaddr *) &servaddr, clilen); | ^~~~~~~~~~~ client.c:26:8: 错误:预期的声明说明符或字符串常量 26 之前的 '...' | printf("%d/n", cliapi); | ^~~~~~ client.c:26:16: 错误: 'cliapi' 26 之前的预期声明说明符或'...' | printf("%d/n", cliapi); | ^~~~~~ client.c:33:1: 错误:预期标识符或 '(' 在 '{' 标记 33 | {
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>
int clientsock, clicnnct;
clientsock = socket( PF_INET, AF_INET, 0 );
struct sockaddr_in clientserv;
clientserv.sin_family = AF_INET;
clientserv.sin_addr.s_addr = htonl(INADDR_ANY);
clientserv.sin_port = htons(8980);
memset( &clientserv, 0, sizeof(clientserv) );
clicnnct = connect ( clientsock, (struct sockaddr *)&clientserv, sizeof(clientserv ) );
int cliapi;
cliapi - getsockname(clientsock, (struct sockaddr*)&clientserv,
sizeof(clientserv) );
printf("%d/n",cliapi);
send(clientsock, (struct sockaddr*)&clientserv, sizeof(clientserv), 0 );
recv(clientsock, (struct sockaddr*)&clientserv, sizeof(clientserv), 0 );