草庐IT

sockaddr_ll

全部标签

c - 套接字 API : accept method didn't set sockaddr_in structure

我正在开发客户端-服务器软件。在服务器端我使用这段代码:intlistener_socket=socket(AF_INET,SOCK_STREAM,0);if(listener_socket所以我的代码阻塞在accept()方法中并等待新的连接。当客户端连接时,accept方法返回正确的非负套接字描述符(我可以使用此描述符与客户端通信)但它不会填充cli_addr结构。它仍然为零。为什么会这样? 最佳答案 我在接受之前忘记了这一行:clilen=sizeof(cli_addr); 关于c

ios - 在 Swift 中使用给定的 IP 地址初始化一个 `sockaddr` 结构

我在玩苹果的ReachabilittySwift中的类。我的私有(private)Wi-Fi中的Web服务器在http://10.0.0.1上运行。为了检查其可达性,我想使用Reachability.h中的以下函数(不是带有主机名的函数):/*!*UsetocheckthereachabilityofagivenIPaddress.*/+(instancetype)reachabilityWithAddress:(conststructsockaddr*)hostAddress;我sockaddr相应地看起来像这样socket.h:/**[XSI]Structureusedbykern

java - 错误 :The processing instruction target matching "[xX][mM][lL]" is not allowed

这个问题在这里已经有了答案:Error:Theprocessinginstructiontargetmatching"[xX][mM][lL]"isnotallowed(11个答案)关闭6年前。我正在使用eclipse编写一个android应用程序,但我停了下来。我尝试用关闭我的代码但是我一直收到错误信息"Theprocessinginstructiontargetmatching"[xX][mM][lL]"isnotallowed."代码如下:我做错了吗?如果我这样做了,请通知我。

ios - 快速将 NSData 转换为 sockaddr 结构

这个问题在这里已经有了答案:HowcanIgetarealIPaddressfromDNSqueryinSwift?(3个答案)关闭2年前。我正在尝试快速进行简单的DNS查找。到目前为止,这是我拥有的代码:lethostRef=CFHostCreateWithName(kCFAllocatorDefault,"google.com").takeRetainedValue()varresolved=CFHostStartInfoResolution(hostRef,CFHostInfoType.Addresses,nil)letaddresses=CFHostGetAddressing(

c# - 在 WPF/C# 中使用全局键盘钩子(Hook) (WH_KEYBOARD_LL)

我根据自己在互联网上找到的代码拼接在一起WH_KEYBOARD_LL帮助程序类:将以下代码放入您的一些实用程序库中,让它成为YourUtils.cs:usingSystem;usingSystem.Diagnostics;usingSystem.Runtime.InteropServices;usingSystem.Runtime.CompilerServices;usingSystem.Windows.Input;namespaceMYCOMPANYHERE.WPF.KeyboardHelper{publicclassKeyboardListener:IDisposable{priv

linux - syscall.Sockaddr 类型断言

我正在打开一个Linux数据包套接字并尝试将接收到的数据包读入一个结构中:typemsgstruct{n,oobn,flagsintp,oob[]bytefromsyscall.Sockaddr}socket,err:=syscall.Socket(AF_PACKET,SOCK_RAW,ETH_P_ALL)pkt:=new(msg)pkt.p=make([]byte,1500)pkt.oob=make([]byte,1500)pkt.n,pkt.oobn,pkt.flags,pkt.from,_=syscall.Recvmsg(socket,pkt.p,pkt.oob,0)根据文档(h

c - 为什么从 sockaddr_in 到 sockaddr 的转换有效

在C语言中,绑定(bind)Socket的典型方式如下:intserver_socket_fd=socket(AF_INET,SOCK_STREAM,0);structsockaddr_inaddr;intport_number=55555;addr.sin_family=AF_INET;addr.sin_addr.s_addr=htonl(INADDR_ANY);addr.sin_port=htons(port_number);intresult=bind(server_socket_fd,(structsockaddr*)&addr,sizeof(addr));if(bind_re

c++ - sockaddr - 打印 sa_data 持有的所有信息 - C++

在我的C++应用程序中,我使用了sockaddr。我想查看sockaddr.sa_data[14]持有的所有信息。现在我只打印sa_data[2].sa_data[3].sa_data[4].sa_data[5].我想以我能理解(并请解释)sa_data14字节中的所有信息的方式打印。有什么帮助吗?谢谢! 最佳答案 在sa_data成员中,对于Windows上的IPv4,我发现前两个字节包含端口号,接下来的四个字节包含IP地址。例如,如果我解析地址228.0.0.1:9995,则sa_data成员是...270be400000100

c++ - 将 sockaddr 中的 IP 地址转换为 uint32_t

我正在尝试将存储在structsockaddr中的IP地址(v4)转换为uint32_t。//structsockaddrin_addr;structsockaddr_in*addr=(structsockaddr_in*)&in_addr;uint32_tclientIpAddr=static_cast(addr->sin_addr.s_addr);uint16_tclientPortNumber=addr->sin_port;首先,我想知道这是否可行。其次,是不是把IP地址转成char[4],以后再转成uint32_t比较好?第三,IP地址0.0.0.1会被转换成数字1吗?还是因为

c - sockaddr_in 中需要单独的地址结构是什么?

这是netinet/in.h中定义的internet(IPv4)套接字地址结构structsockaddr_in{uint8_tsin_len;sa_family_tsin_family;in_port_tsin_port;structin_addrsin_addr;charsin_zero[8];};structin_addr{in_addr_ts_addr;};这里只需要地址字段的单独结构。为什么我们不能使用下面的结构?structsockaddr_in{uint8_tsin_len;sa_family_tsin_family;in_port_tsin_port;in_addr_t