windows – Struct sockaddr,sin_family不是成员
发布时间:2020-12-14 03:58:35 所属栏目:Windows 来源:网络整理
导读:根据msdn的这篇文章( http://msdn.microsoft.com/en-us/library/windows/desktop/ms740496(v=vs.85).aspx)结构根据选择的协议而变化! 现在我想使用http://www.intelliproject.net/articles/showArticle/index/check_tcp_udp_port中的代码来检查端口是否打开
根据msdn的这篇文章(
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740496(v=vs.85).aspx)结构根据选择的协议而变化! 现在我想使用http://www.intelliproject.net/articles/showArticle/index/check_tcp_udp_port中的代码来检查端口是否打开! 现在我有struct sockaddr如下: struct sockaddr { ushort sa_family; char sa_data[14]; }; 但需要这个结论: struct sockaddr { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; 哪些变化是必要的? (Ws2_32.lib是链接的,以下包括 #define WIN32_LEAN_AND_MEAN // sockets #include "windows.h" #include <winsock2.h> #include <ws2tcpip.h> 谢谢 解决方法
在套接字API中,要使用的地址结构取决于协议.如果您使用的是IPv4,那么您需要的结构是sockaddr_in.
很久以前,当void *不符合标准时,套接字API就出现了.指向sockaddr的指针在整个套接字函数中使用,与我们使用void *指针的方式完全相同.这些函数希望您将指针传递给与您使用的协议相关的结构.令人不快的是,每当你将指针传递给你的地址结构时,你都需要一个演员,但你无能为力. IPv4示例: struct sockaddr_in address; // ... memset( &address,sizeof(address) ); address.sin_family = AF_INET; address.sin_port = htons(1100); address.sin_addr.s_addr = INADDR_ANY; if ( bind( sock,(struct sockaddr *)&address,sizeof(address) ) < 0 ) { //.... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-phone-8 – 如何获得Windows Phone 8设备的屏幕尺寸
- windows – 打开WDK Projects会导致出现“发生一个或多个错
- windows-server-2008-r2 – 远程服务器:请等待系统事件通知
- windows-phone-7 – 我在哪里可以找到静态资源?
- windows – 锁定屏幕不记得用户名
- 如何在Windows 8 Metro应用程序中处理HTML内容
- 在运行VM的Hyper-V服务器上运行Windows Update的最佳做法是
- windows-server-2008 – Windows高级防火墙:“Edge Traver
- windows-phone-7 – 播放时出现问题,WP7中录制的音频
- qt4 – Qt – Windows 7基本主题下禁用的QPushButton的样式
推荐文章
站长推荐
热点阅读