利用getsockopt获取套接字某属性的属性值

      利用getsockopt可以获取套接字某属性的属性值, 本文, 我们来窥见一斑。 多的不说, 肚子饿了, 直接上菜:

#include <stdio.h>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")   

int main()
{
	WSADATA wsaData;
	WSAStartup(MAKEWORD(2, 2), &wsaData);
	unsigned int serverSocket = socket(AF_INET, SOCK_STREAM, 0);

	sockaddr_in server;
	server.sin_family = AF_INET;
	server.sin_addr.s_addr = inet_addr("0.0.0.0");
	server.sin_port = htons(8888);
	bind(serverSocket,(SOCKADDR*)&server, sizeof(server));

	// SO = socket option = option = opt = 选项 = 属性, 比如SO_ACCEPTCONN表示监听状态的属性值
	int optVal = -1;
	int optLen = sizeof(int);
	getsockopt(serverSocket, SOL_SOCKET, SO_ACCEPTCONN, (char*)&optVal, &optLen);
	printf("监听状态: %d\n", optVal); // 0, 未监听

	listen( serverSocket, 100 );
	getsockopt(serverSocket, SOL_SOCKET, SO_ACCEPTCONN, (char*)&optVal, &optLen);
	printf("监听状态: %d\n", optVal); // 1, 已经监听

	WSACleanup();
	return 0;
}


你可能感兴趣的:(利用getsockopt获取套接字某属性的属性值)