zoukankan      html  css  js  c++  java
  • 关于socket编程获取客户端地址笔记

    因为最近刚好碰到这块,而且很不小心的在上面踩了个坑,所以把这个坑记录下来

    首先,在我们都是在accept函数以后来获取客户端的地址:

    client_sd = accept(watcher->fd, (struct sockaddr*) &client_addr, &client_len);

    在服务端接收到accept以后,会使用结构体 struct sockaddr *来存储客户端的地址信息

    我们可以通过inet_ntoa(client_addr.sin_addr)来获取到客户端ip(点分十进制字符串);

    我在使用的时候,每次执行到inet_ntoa时候都会(Segmentation Fault)段错误,当时整个人都斯巴达了;

    网上查了下资料发现,inet_ntoa就是这么用啊?????  so???    

    sprintf(node->client_addr,"%s",inet_ntoa(client_addr.sin_addr));

    最后在发现,坑在这里。。。

    使用inet_ntoa必须添加头文件#include <arpa/inet.h>

    在编译没有开警告的情况下  程序运行到这里就会Segmentation Fault

    所有,在平时最好还是开启编译器警告比较好,不然这些问题真的很。。。。

  • 相关阅读:
    反射入门
    把数据库表的信息添加到list集合里面
    简单的事务分析及使用
    java-web与jdbc 的使用
    菜鸟入门bootstrap
    如何彻底的卸载mysql
    发生系统错误 1067,解决方案
    纯js的购物车案例
    idea里面怎么把自己项目添加maven
    js入门
  • 原文地址:https://www.cnblogs.com/dpf-10/p/5867779.html
Copyright © 2011-2022 走看看