vc++中创建socket

#include <winsock2.h>
int sockfd, new_fd;   //监听端口,数据端口
struct sockaddr_in my_addr;  
//1.初始化socket,调用winsocek动态库,否则不能创建
 WORD wVersionRequested;
 WSADATA wsaData;
 int err;
 wVersionRequested = MAKEWORD( 2, 2 );
 err = WSAStartup( wVersionRequested, &wsaData );
    if ( err != 0 )
 {
  return -1;
    }
    if ( LOBYTE( wsaData.wVersion ) != 2 ||
        HIBYTE( wsaData.wVersion ) != 2 )
 {
  WSACleanup( );
  return -1;
 }
//2.创建一个socket
 if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
  perror("Fail to create socket error.");
  exit(1);
 }
//设置socket参数
setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,(char*)&yes,sizeof(int));
setsockopt(sockfd,SOL_SOCKET,SO_RCVBUF,(char*)&yes,sizeof(int));
setsockopt(sockfd,SOL_SOCKET,SO_SNDBUF,(char*)&yes,sizeof(int));
//3.绑定socket
 my_addr.sin_family = AF_INET;    // Internet 协议族
 my_addr.sin_port = htons(iPort);   // 网络字节顺序
 my_addr.sin_addr.s_addr = INADDR_ANY;   // 自动填本机IP
 memset(&(my_addr.sin_zero),'\0', 8);
bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr));
//4.监听端口
listen(sockfd, BACKLOG);
 

posted on 2013-03-21 16:21  AI_JJ  阅读(380)  评论(0)    收藏  举报

导航