当前位置:  技术问答>linux和unix

tcpdump 抓不到包

    来源: 互联网  发布时间:2017-05-25

    本文导语:  小弟初学网络编程,想用tcpdump抓包看一下,但是死活抓不到,求大神指点 服务器代码 #include  #include  #include  #include  #include  #include  #include  #include  #define SERVER_PORT 8003 #define MSG_BUF_SIZE 128 main() {     int sock...

小弟初学网络编程,想用tcpdump抓包看一下,但是死活抓不到,求大神指点
服务器代码

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define SERVER_PORT 8003
#define MSG_BUF_SIZE 128

main()
{
    int sockfd;
    struct sockaddr_in my_addr;
    struct sockaddr_in their_addr;
    int addr_len,numbytes;
    char buffer[MSG_BUF_SIZE];

    if((sockfd = socket(AF_INET,SOCK_DGRAM,0)) == -1)
    {
        fprintf(stderr,"socket error");
        exit(1);
    }
    my_addr.sin_family = AF_INET;
    my_addr.sin_port = htons(SERVER_PORT);
    my_addr.sin_addr.s_addr = INADDR_ANY;
    bzero(&(my_addr.sin_zero),8);

    if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr)) == -1)
    {
        fprintf(stderr,"bind errorn");
        exit(1);
    }
    
    addr_len = sizeof(struct sockaddr);

    if((numbytes = recvfrom(sockfd,buffer,MSG_BUF_SIZE,0,(struct sockaddr *)&their_addr,&addr_len)) == -1)
    {
        fprintf(stderr,"recvfrom error");
        exit(1);
    }

    printf("got packet from %sn",inet_ntoa(their_addr.sin_addr));
    printf("packet is %d bytes longn",numbytes);
    buffer[numbytes]='';
    printf("packet contains "%s"n",buffer);
    close(sockfd);
}

客户端代码:
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define  SERVER_PORT 8003
int main(int argc,char *argv[])
{
    int sockfd;
    struct sockaddr_in their_addr;
    struct hostent *hostname;
    int num_bytes;

    if(argc != 3)
    {
        fprintf(stderr,"usage:talker hostname messagen");
        exit(1);
    }
    if((hostname = gethostbyname(argv[1])) == NULL)
    {
        fprintf(stderr,"gethostbyname");
        exit(1);
    }
    if((sockfd = socket(AF_INET,SOCK_DGRAM,0)) == -1)
    {
        fprintf(stderr,"socket");
        exit(1);
    }

    their_addr.sin_family = AF_INET;
    their_addr.sin_port = htons(SERVER_PORT);
    their_addr.sin_addr = *((struct in_addr *)hostname->h_addr);
    bzero(&(their_addr.sin_zero),8);

    if((num_bytes = sendto(sockfd,argv[2],strlen(argv[2]),0,(struct sockaddr *)&their_addr,sizeof(struct sockaddr))) == -1)
    {
        fprintf(stderr,"sendto");
        exit(1);
    }
    printf("sent %d bytes to %sn",num_bytes,inet_ntoa(their_addr.sin_addr));
    close(sockfd);
    return 0;
}
所用的命令是 tcpdump port 8003
程序正常运行,但是抓不到包

|
本地环回不跑以太网卡,tcpdump -i lo 抓本地环回的。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • javascript开源软件 iis7站长之家
  • Linux/CentOS抓包命令tcpdump介绍及最新版下载
  • tcpdump用法疑问
  • 定时任务执行tcpdump
  • tcpdump工作在防火墙之前还是之后
  • (菜鸟飞飞)tcpdump和libpcap有啥区别?
  • 网络数据采集分析工具 TCPDUMP
  • 使用tcpdump出现问题
  • 谁能提供tcpdump 的源码?谢谢了.
  • tcpdump的问题
  • 请问在tcpdump中对IP数据报捕包的代码在什么位置
  • 郁闷!安装tcpdump时出错!(在线等待)
  • 询问一个TCPDUMP语法问题 在抓TCP包时不能指定IP吗?
  • tcpdump怎么抓dhcp的包?
  • Tcpdump如何抓取对方发过来的数据包
  • 求linux里的tcpdump命令,写一个监听15717端口收到和发出去的所有包
  • tcpdump -i any抓包问题
  • tcpdump -i eth0 -W /tmp/1.txt不能将抓包结果写入文件
  • unix下有没有象tcpdump一的东东啊?
  • 我要tcpdump的安装包, 大家帮我找找, 哪里可以下载????急


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3