linux命令发数据 linux 发送数据( 三 )


netstat -an查看本机所有网络链接
netstat -rn查看本届路由表
命令名称:setup
执行权限:root
语法:setup
功能描述:配置网络(永久生效)
例子: setup
注意:配置网络结束后要重启网络服务
service network restart
挂在命令
命令名称:mount
执行权限:所有用户
语法:mount[-t 文件系统] 设备文件
例子:mount -t iso9660/dev/sr0/mnt/cdrom
命令名称:shutdown
[root@localhost~]#shutdown [选项] 时间
选项:- c : 取消前一个关机命令
- h:关机
- r :重启
特点:可以正确的关闭和保存服务,建议实用
其他关机命令
halt
poweroff (直接断电)
init 0
重启命令
reboot
init6
补充:init_的数字含义
init0关机
init1单用户(启动最小最核心的服务)
init2不完全多用户,不含NFS服务(network file system 网络文件系统)
init3完全多用户
init4未分配
init5图形界面
init6 重启
查询系统运行级别
runlevel
退出登录命令
logout
linux怎么使用nc命令来发送一串使用udp协议的数据?或者不是NC也可以的命令echo -n “foo" | nc -4u -w1 host udp port
或者
echo -n "hello" /dev/udp/localhost/8000
Linux中数据发送流程?Linux网络子系统在发送数据包时,会调用驱动程序提供linux命令发数据的hard_start_transmit()函数,该函数用于启动数据包linux命令发数据的发送 。在设备初始化的时候,这个函数指针需被初始化以指向设备的xxx_tx ()函数 。网络设备驱动完成数据包发送的流程如下:
1)网络设备驱动程序从上层协议传递过来的sk_buff参数获得数据包的有效数据和长度 , 将有效数据放入临时缓冲区 。
2)对于以太网,如果有效数据的长度小于以太网冲突检测所要求数据帧的最小长度ETH ZLEN , 则给临时缓冲区的末尾填充0 。
3)设置硬件的寄存器,驱使网络设备进行数据发送操作 。
特别要强调对netif_ stop_queue()的调用,当发送队列为满或因其他原因来不及发送当前上层传下来的数据包时,则调用此函数阻止上层继续向网络设备驱动传递数据包 。当忙于发送的数据包被发送完成后,在以TX结束的中断处理中,应该调用netif_wake_queue ()唤醒被阻塞的上层,以启动它继续向网络设备驱动传送数据包 。当数据传输超时时,意味着当前的发送操作失败或硬件已陷入未知状态,此时,数据包发送超时处理函数xxx _tx _timeout ()将被调用 。这个函数也需要调用由Linux内核提供的netif_wake _queue()函数以重新启动设备发送队列 。
linux下send命令是干什么用的功能描述:
发送消息,send只可用于基于连接的套接字,send

write唯一的不同点是标志的存在,当标志为0时,send等同于write 。sendto

sendmsg既可用于无连接的套接字,也可用于基于连接的套接字 。除了套接字设置为非阻塞模式,调用将会阻塞直到数据被发送完 。
用法:
#include sys/types.h
#include sys/socket.h
ssize_t send(int sock, const void *buf, size_t len, int flags);
ssize_t sendto(int sock, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
ssize_t sendmsg(int sock, const struct msghdr *msg, int flags);参数:
sock:索引将要从其发送数据的套接字 。
buf:指向将要发送数据的缓冲区 。
len:以上缓冲区的长度 。
flags:是以下零个或者多个标志的组合体,可通过or操作连在一起
msg_dontroute:不要使用网关来发送封包,只发送到直接联网的主机 。这个标志主要用于诊断或者路由程序 。

推荐阅读