windows网络编程学习笔记二

面向连接的通信

  1.服务器api函数

步骤:第一步是用socket将给定的协议的套接字绑定到一直的名称上,通过调用bind api来完成

         第二步是将套接字设为监听模式,调用listen函数

         第三步是建立连接,调用accept来接受连接。

 

bind函数定义:

int bind(SOCKET s,                                            //需要套接字

             const struct sockaddr  FAR*  name,    //需要sockaddr结构

            int  namelen                                              //sockaddr结构长度

);

 

listen函数定义:

int listen(SOCKET s,

             int backlog  );

 

accept函数定义:

SOCKET accept(SOCKET s,

                           struct sockaddr  FAR* addr,

                          int FAR* addrlen);

 

服务器程序完整代码:

#include

void main(void)

{

   WASADATA wsaData;//初始化winsock  WSAStartuph函数所需

SOCKET    ListeningSocket;      bind listen  accept 函数均需

SOCKET   NewConnection;

SOCKADDR_IN   ServerAddr;

SOCKADDR_IN   ClientAddr;

int Port=5150;                           //SOCKET_IN结构中需要端口号

 

WSAStartup(MAKEWORD(2,2),&wsaData);

 

//创建套接字

ListeningSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

 

初始化SOCKET_IN结构体

ServerAddr.sin_family=AF_INET;

ServerAddr.sin_port=htons(Port);

ServerAddr.sin_addr.s_addr=htonl(INADDR_ANY);

 

使用bind函数来绑定套接字

bind(ListeningSocket,&ServerAddr,sizeof(ServerAddr));

 

//监听客户及连接

listen(ListeningSocket,5);

 

//连接到达时接受连接

NewConnection=accept(ListeningSocket,&ClientAddr,sizeof(ClientAddr));

 

//关闭连接

closesocket(NewConnection);

closesocket(ListeningSocket);

 

 

WSAClenup();

}

你可能感兴趣的:(网络编程)