TCP通信过程(一)

本文介绍了Windows Sockets (WinSock)编程的基本步骤,包括WSAStartup()函数用于初始化WinSock DLL,Socket()函数创建用于通信的Socket对象,以及bind()函数为Socket绑定地址和端口号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*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()






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值