什么是套接字: 套接字是一个介质,由操作系统控制, 下面演示下windows和linux中的socket接口建立的代码,通用
#ifdef WIN32
#include <Windows.h>
#else
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#define closesocket close
#endif
#include <stdio.h>
int main(int argc,char *argv[])
{
#ifdef WIN32
WSADATA ws;
WSAStartup(MAKEWORD(2,2),&ws); //相当于加载了动态库,给引用增加1,这个只需要调用以此,但是需要调用在最前面
#endif
for (int i = 0; i < 1000; i++)
{
int sock = socket(AF_INET, SOCK_STREAM, 0); //tcp协议,这样就创建了一个socket,返回值是int类型
if (sock == -1)
{
printf("create socket failed\n");
return -1; //什么时候会失败,资源耗尽的时候,linux与文件的句柄数量有关
}
printf("[%d]", sock); //打印结果就是句柄的 id号
closesocket(sock);
}
getchar();
return 0;
}
注意linux中我们的ulimit -n num(设置socket启动数量,如果不设置默认就是最多支持1024个socket)。如果在linux中我们想建立多个socket,只需注掉closesocket即可。
|