linux中socket是如何调用驱动程序

linux中socket是如何调用驱动程序,第1张

分为发送和接受:

发送:

首先,游消socketAPI会创建并把数据至一个叫sk_buff的结构体,然后依次把sk_buff交给运输层,网络层让磨兆,数据链路层协议进行处理,然后在填写完sk_buff后再把他交付给驱动程序由网络设备发送出去。

接受和发送是反过程,驱动层程序一般由中断处理收到数据包后会创建sk_buff结构体,让后把数据和一些控制信息填进去,再把sk_buff向坦租数据链路层协议交付,然后就是网络层,运输层最后交给socketAPI接口了

调用Socket的每个函数之后,会有对应的返回信息,观察这些返回信息,就可以比举行较轻松的调试了。

如:SOCKET

sock=socket();如果不成功,则sock为NULL。

int

iret=send();(UDP

用sendto())判断iret的值,它表示实际发送的字节数,如果为-1,则是socket网络故障,一般是sock为NULL,或者没有用WSAStartup()初始化套接字。

iret=recv()(UDP用recvfrom())iret表示实际收到的字节数,故障诊断跟send()一样。仿卜

bind(),Listen()等都可以查msn获取它的成功与失败代码。

另外用WSAGetLastError()可以获取上次Socket的错误代码,得到这个代码后,你可以在google上搜索这个代码,就知道具体的网络错备答穗误(

CString

sErrorCode;

sErrorCode.Format("%d",WSAGetLastError)

sErrorCode中就包括了错误代码。

)。

shadowsocks使用方法:

1、使用Shadowsocks需要安装客户端程序,该程序可以连接到Shadowsocks服务器,从而实现穿越防火墙。

2、安装客户端程序后,需要获取Shadowsocks服务器的信息,然后在客户端程序中输入该信息。

3、选择一种传输协议,并启槐笑渣用客户端程序,即可穿越防火升漏墙铅悄,访问被封锁的网站。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12350386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存