我正在try 将套接字绑定到下面的端口:

if( bind(socket_desc,(struct sockaddr *) &server, sizeof(server)) < 0)
{
    perror("bind failed. Error");
    return 1;
}
puts("bind done");

但它提供了:

$ ./serve   
Socket created    
bind failed. Error: Address already in use

为什么会出现这种错误?

推荐答案

该错误通常意味着您试图打开的端口已被其他应用程序使用.try 使用netstat查看哪些端口处于打开状态,然后使用可用端口.

还要判断您是否绑定到正确的IP地址(我假设它是本地主机)

C++相关问答推荐

XV 6中的MLFQ和RR

错误:八进制常数中的数字9无效

如何在C中的空指针函数中传递浮点值

数组元素的编号索引

ATmega328P USART发送字符重复打印

Tiva TM4C123GXL的I2C通信

堆栈在作用域阻塞后会被释放吗?

为什么可以在typedef之前使用typedef d struct 体?

C是否用0填充多维数组的其余部分?

非常大的数组的大小

如何在C++中处理按键

如何在提取的索引中分配空值?

如何用C语言为CLI应用程序编写按键检测系统?

从BIOS(8086)中读取刻度需要多少?

共享目标代码似乎不能在Linux上的进程之间共享

使用 _Atomic float 时,MSVC 编译的代码会命中调试断言

(GNU+Linux) 多个线程同时调用malloc()

C 语言中霍尔分区的快速排序算法

子进程不会修改父进程中的统计信息

与 C 相比,C++ 中无副作用的无限循环的好处是 UB?