raw socket java,raw_socket(原始套接字)以及普通socket使用终极总结

本文详细介绍了Java中传输层的普通socket和网络层的原始socket(raw socket)的创建、发送与接收操作,以及数据链路层的socket。内容涵盖TCP、UDP、ICMP协议,讲解了套接字的软过滤和硬过滤过程,并讨论了不同层套接字的使用场景。
摘要由CSDN通过智能技术生成

一、传输层socket(四层socket,普通socket)

可参考本人以下博客:

(1)创建

socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

//TCP

//或者

socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);

//UDP

AF_INEF表示TCP/IP族

第三个参数可以为0,由操作系统自行选择

(2)发送

sendto(sd,buffer,BUFSIZ,0,(SOCKADDR*)&addrServ,sizeof(SOCKADDR));//UDP

send(sd, buffer, BUFSIZ, 0); //TCP

(3)接收

recvfrom(sd,buffer,BUFSIZ,0,(SOCKADDR*)&addrClient,sizeof(SOCKADDR));//UDP

recv(sd, buffer, BUFSIZ, 0);//TCP

sd为socket标识符,buffer为接受/发送缓冲区,BUFSIZ为接受/发送缓冲区。后两个参数为发送或接受的对方地址,可以为NULL

二、网络层socket(三层socket)

可以参考本人一下博客或代码:

(1)创建

socket(AF_INET, SOCK_RAW, IPPROTO_UDP );//第三个参数可以是UDP,TCP或者ICMP

(2)接收

recvfrom(sd, buffer, sizeof(buffer), 0,(struct sockaddr *)&client_addr, &addrlen));//

后两个参数可以为null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值