c++ - connect() 上的参数 errno 无效

标签 c++ connect errno

我正在编写一个基本上执行服务器-客户端关系的程序。 当我运行我的客户端时(使用相关参数,当服务器已经运行时),我收到以下错误消息:
无效参数
以下是相关代码的一部分:

if(argc != NUM_OF_ARGS)
{
    fprintf(stderr,"usage: Client <CLIENT NAME> <SERVER ADDRESS> <SERVER PORT>\n");
    exit(1);
}

int serverPort = atoi(argv[3]);

if(serverPort == 0){
    cerr << serverPort<<endl;
    fprintf(stderr,"bad arguments\n");
    exit(1);
}

//update the local machine's addr
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(serverPort);

inet_aton(argv[2],&(server_addr.sin_addr));
memset(&(server_addr.sin_zero),'\0',8);

int fd = socket(PF_INET,SOCK_STREAM,0);
if(fd < 0){
    fprintf(stderr,strerror(errno));
    exit(1);
}

if(connect(fd,(sockaddr*)&server_addr,BUFFERSIZE) < 0){
    fprintf(stderr,strerror(errno));//My program gets here and exits.
    exit(1);
}

另一个注意事项:我作为参数给出的地址格式为:132.65.151.68

我做错了什么?

最佳答案

connect 期望第二个参数指向的结构的大小作为第三个参数。有关详细信息,请参见 man 2 connect

关于c++ - connect() 上的参数 errno 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6089891/

相关文章:

c++ - 如何正确地转换数据开始指针(这甚至是一种好习惯)?

c++ - 从 Visual Studio 应用程序控制 Unity3D

c++ - 在 C++ 中删除单词之间的所有空格

php - 如何使用 PHP 连接到 Linux?

python - 从 2 个模型创建表单 python django : [Errno 2] No such file or directory

ruby - 如何在 Ruby 中创建文件

c++ - OpenCV 3.0 中 ACCESS_FAST 的用途是什么?

scripting - 如何在 "openssl s_client -connect"内强制退出?

java - Java:是否连接到Active Directory(AD)?

python - 这个 socket.gaierror 是什么意思?