`
luozhaoyu
  • 浏览: 346688 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux套接字bind error问题

    博客分类:
  • C
 
阅读更多
下午练的linux套接字出了一些毛病,各种错误,先贴出正确代码:

struct sockaddr_in linuxaddr;
linuxaddr.sin_addr.s_addr = htonl(INADDR_ANY);
linuxaddr.sin_family = AF_INET;
linuxaddr.sin_port = htons(12345);
if (bind(fd, (struct sockaddr*)&linuxaddr, sizeof(linuxaddr)) < 0)
{}


首先是确定fd是一个套接字描述符,请先赋值后再比较是否<0,仔细比对括号
其次是看sockaddr_in这个结构体中,family是不需要转换的,IP地址要转成长整形,端口是短整形

分享到:
评论

相关推荐

    Linux_套接字编程中的_5_个隐患.pdf

    ### Linux套接字编程中的五个隐患 #### 隐患1:忽略返回状态 在Linux套接字编程中,忽略函数的返回状态是最常见的错误之一。这种错误往往会导致程序无法正常运行,因为当函数调用失败或部分成功时,开发者可能会...

    Linux 套接字编程中的 5 个隐患

    在进行Linux套接字编程时,开发者常常会遇到各种意想不到的问题。这些问题虽然看似简单,却往往能够导致应用程序的稳定性下降,甚至出现不可预知的行为。本文将详细介绍五个常见的隐患,并提供相应的解决方案。 ###...

    Linux下Socket编程的端口问题 ( Bind(): Address already in use ) PDF版

    - [Linux套接字编程中的5个隐患](http://www.ibm.com/developerworks/cn/linux/l-sockpit/) - [man setsockopt](http://www.opengroup.org/onlinepubs/7990989775/xns/setsockopt.html) 通过上述分析和解决方案的...

    Linux_CAN编程详解_socketCAN_canbus_linux_linuxcan_

    2. 绑定套接字:使用`bind()`函数将套接字与CAN接口关联,如`"can0"`。 3. 设置过滤器:使用`setsockopt()`函数设置CAN过滤器,筛选接收的CAN消息。 4. 发送和接收数据:使用`sendto()`和`recvfrom()`函数发送和接收...

    Linux系统调用-- recv/recvfrom 函数详解

    `recv` 主要用于面向连接的套接字(例如TCP),而 `recvfrom` 可以用于面向连接和无连接的套接字(如UDP)。当消息的大小超过了提供的缓冲区容量时,根据不同的套接字类型,多余的字节可能会被丢弃。 #### 用法 ```...

    第7章-嵌入式Linux网络应用开发.ppt

    socket函数用于获取一个套接字描述符,bind函数用于将IP地址和端口号与套接字描述符绑定在一起,listen函数用于监听套接字,accept函数用于接受客户端连接请求。 7.3 嵌入式系统的Web服务器程序设计 嵌入式系统的...

    linux下多线程网络编程TCP服务器端数据传输代码

    2. **绑定到端口**:使用`bind()`函数将套接字与一个本地IP地址和端口号绑定,使得服务器可以在该端口上监听连接。 3. **开始监听**:调用`listen()`函数设置最大等待连接队列长度,使服务器进入监听状态。 4. **...

    linux网络编程

    在Linux系统中,网络编程通常基于POSIX标准和Berkeley套接字接口,这是一个跨平台的API,允许程序员创建能够通过网络进行通信的程序。 **一、套接字基础** 在Linux网络编程中,套接字是网络通信的基本单元。套接字...

    Linux下的UDP广播系统编程示例

    - **绑定端口:** 使用`bind`函数将套接字与本地地址绑定。 - **接收数据:** 使用`recvfrom`函数接收来自客户端的数据,并获取客户端的地址信息。 - **打印数据:** 打印接收到的数据及其来源客户端的地址。 ### ...

    解决jvmjava.net.BindException: Address already in use: JVM_Bind异常

    例如,在Linux中,可以设置`SO_REUSEADDR`套接字选项,允许在端口释放后立即重新绑定。 5. **使用端口扫描工具**:使用网络工具(如`netstat`或第三方端口扫描器)来查找占用特定端口的进程。 6. **设置超时**:在...

    Linux网络编程使用多进程实现服务器并发访问.docx

    服务器与客户端通过套接字(socket)进行通信,套接字是网络上的两个进程间通信的一种端点。在服务器端,创建一个监听套接字,用于等待客户端的连接请求。一旦客户端发起连接,服务器会接收这个连接,并为每个连接...

    linux网络编程.pdf

    // 创建一个套接字,用于监听 bzero(&serveraddr, sizeof(serveraddr)); // 地址结构清零 serveraddr.sin_family = AF_INET; // 指定使用的通讯协议族 serveraddr.sin_addr.s_addr = htonl(INADDR_ANY); // 指定...

    Linux网络编程基础(一).doc

    `bind()`函数用于将一个IP地址和端口号绑定到由`socket()`创建的套接字上。参数sockfd是`socket()`返回的文件描述符,my_addr是一个指向`sockaddr_in`结构体的指针,包含服务器的IP地址和端口信息。`sin_family`设置...

    socket linux2

    #include &lt;sys/socket.h&gt; // 包含套接字函数库 #include #include &lt;netinet/in.h&gt; // 包含AF_INET相关结构 #include &lt;arpa/inet.h&gt; // 包含AF_INET相关操作的函数 #include #include #include #define PORT 6789 ...

    QT_的socket_与_Linux_的socket通信Linux

    QT提供了用于实现网络通信的高级类库,其中`QTcpSocket`是用于TCP/IP协议的套接字类。通过使用这些类库,开发人员可以更方便地创建客户端或服务器程序。 #### 客户端示例代码解析 ```cpp class Client : public ...

    管道和socket编程.docx

    - 使用`bind()`函数将套接字与特定的网络地址(例如IP地址和端口号)绑定。 3. **监听连接**: - 对于TCP服务器,使用`listen()`函数使套接字进入监听状态,准备接受客户端的连接请求。 4. **接收连接**: - 使用...

    北邮网络编程作业2(远程文件读写服务)

    - 绑定地址:`bind()`函数将服务器的套接字描述符`ss`与`server_addr`结构中的IP地址和端口号(这里是8866)绑定。 - 设置监听队列:`listen()`函数用于设置监听队列的长度(这里为10),即最多可以有多少个未完成...

    Linux 函数库 手册

    4. **Network Programming**:glibc提供了丰富的网络编程接口,如中的`socket`创建套接字,`bind`绑定端口,`connect`建立连接,`recv`和`send`接收和发送数据。此外,还有`gethostbyname`解析主机名,`inet_addr`和...

Global site tag (gtag.js) - Google Analytics