根据msdn的这篇文章( http://msdn.microsoft.com/en-us/library/windows/desktop/ms740496(v=vs.85).aspx ),结构会根据select的协议而有所不同!
现在我想从http://www.intelliproject.net/articles/showArticle/index/check_tcp_udp_port使用这段代码来检查一个端口是否打开!
现在我有如下的struct sockaddr:
struct sockaddr { ushort sa_family; char sa_data[14]; };
但需要这样的结局:
Python从黑帽蟒Python书中嗅探
更多投票()?的
为什么我的C socket文件传输(服务器/客户端)程序只能正确运行一次?
如何从内核中的UDP读取缓冲区中删除数据包?
无法连接到主机在C:主机名未find(11001)在Windows,DNS问题?
struct sockaddr { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; };
哪些变化是必要的?
#define WIN32_LEAN_AND_MEAN // sockets #include "windows.h" #include <winsock2.h> #include <ws2tcpip.h>
谢谢
如何检测Windows中打开的套接字?
SCTP多宿主
如何找出一个套接字在Windows中是否已经处于非阻塞模式?
如何在一个进程中接受SSL连接,并在另一个进程中重用相同的SSL上下文
Linux:分叉两次和守护进程之间的区别(ise)
在套接字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 ) { //.... }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。