TCP通信过程(一)

来源:互联网 发布:冒险岛钻机的通讯数据 编辑:程序博客网 时间:2024/05/24 04:00

*WSAstartup()

此函数在应用程序中初始化WindowsSockets DLL 

在程式中调用该函数的形式如下:
vWSAStartup((WORD)((1<<8|1),(LPWSADATA)&WSAData),
其中(1<<8|1)表示我们用的是WinSocket1.1版本,WSAData用来存储系统传回的关于WinSocket的资料。

*Socket()

初始化WinSock的动态连接库后,需要在服务器端建立一个监听的Socket,为此可以调用Socket()函数用来建立这个监听的Socket,并定义此Socket所使用的通信协议。此函数调用成功返回Socket对象,失败则返回INVALID_SOCKET(调用WSAGetLastError()可得知原因,所有WinSocket的API函数都可以使用这个函数来获取失败的原因)。

SOCKET PASCAL FAR socket( intaf, int type, int protocol )

参数: af:目前只提供 PF_INET(AF_INET);

  type:Socket 的类型(SOCK_STREAM、SOCK_DGRAM);

  protocol:通讯协定(如果使用者不指定则设为0);

  如果要建立的是遵从TCP/IP协议的socket,第二个参数type应为SOCK_STREAM,如为UDP(数据报)的socket,应为SOCK_DGRAM。

*bind()

我们调用bind()函数,为服务器端定义的这个监听的Socket指定一个地址及端口(Port),这样客户端才知道待会要连接哪一个地址的哪个端口

该函数调用成功返回0,否则返回SOCKET_ERROR。

  int PASCAL FAR bind( SOCKET s,const struct sockaddr FAR *name,int namelen );

  参 数: s:Socket对象名;

      name:Socket的地址值,这个地址必须是执行这个程式所在机器的IP地址;

      namelen:name的长度; 




WSAStartup()






原创粉丝点击