用C创建客户端时出现编译错误

标签 c struct

这是我创建客户端的函数

void registerCalledOnClient(char* ip, struct sockaddr_in& remoteServer, int remotePort){

    int success, sockfd; 
    if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) <0){
        perror("Client socket failed: ");
        exit(11);
    }
    remoteServer.sin_family = AF_INET;
    remoteServer.sin_port = htons(remotePort);
    remoteServer.sin_addr.s_addr = inet_addr(ip);

    if((success = connect(sockfd, (struct sockaddr*)&remoteServer, sizeof(sockaddr_in))) < 0){
        perror("client connection failed: ")
        exit(12);
    }

}

这是 header 签名

void registerCalledOnClient(char* ip, struct sockaddr_in, int remotePort);

这就是我根据用户输入调用它的方式

outgoingIp = strtok(NULL, " ");
remotePort = atoi(strtok(NULL, " "));
struct sockaddr_in remoteServer;

registerCalledOnClient(outgoingIp, remoteServer, remotePort);

这是我得到的错误,我似乎无法弄清楚

    src/utilities.c:83:57: error: expected ')'
    void registerCalledOnClient(char* ip, struct sockaddr_in& remoteServer, int remotePort){
                                                            ^
    src/utilities.c:83:28: note: to match this '('
    void registerCalledOnClient(char* ip, struct sockaddr_in& remoteServer, int remotePort){
                               ^
    src/utilities.c:83:57: error: parameter name omitted
    void registerCalledOnClient(char* ip, struct sockaddr_in& remoteServer, int remotePort){

src/utilities.c:90:2: error: use of undeclared identifier 'remoteServer'
        remoteServer.sin_family = AF_INET;
        ^
src/utilities.c:91:2: error: use of undeclared identifier 'remoteServer'
        remoteServer.sin_port = htons(remotePort);
        ^
src/utilities.c:91:32: error: use of undeclared identifier 'remotePort'
        remoteServer.sin_port = htons(remotePort);

我对 C 语言不太流利。感谢任何帮助。

最佳答案

这个:

struct sockaddr_in& remoteServer

不是 C 语法,它看起来像 C++,其中使用 & 符号来声明引用。 C 没有引用;您必须按值传递结构或使用指针。

关于用C创建客户端时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33191434/

相关文章:

c++ - 报告功能故障哪家学校好

c - 如何在c中获取硬盘信息?

c - 在 C99 中打印带和不带 & 的指针之间的区别

go - 如何在 Golang 中正确初始化结构中的结构指针

结构而不是数组的运算符的 C 地址?

c++ - volatile 结构与类型转换

时钟不准确

c - MPI_Scatter 和 Gather 用于 MPI 中的二维矩阵,使用 C

c++ - BITMAPINFO 结构的 bmiColors 字段

sql - BigQuery 插入嵌套记录