Some basic socket functions

本文介绍了Winsock编程的基础函数,包括WSAStartup()和WSACleanup()的初始化与清理过程;bind()函数中如何指定端口及获取已分配的端口信息;connect()函数在流式与数据报模式下的应用,以及其对于默认目的地址的设定;最后探讨了WSARecvFrom()函数的同步与异步工作模式。

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

1.      WSAStartup(), WSACleanup()

int PASCAL WSAStartup(WORD,LPWSADATA);

int PASCAL WSACleanup(void);

You should only need to call these functions once each, the former when you initialize Winsock, and the latter when you are finished.

An application must call one WSACleanup call for every successful WSAStartup call to allow third-party DLLs to make use of a WS2_32.DLL on behalf of an application.

 

2.      bind()

For TCP/IP, if the port is specified as zero, the service provider assigns a unique port to the application with a value between 1024 and 5000.

The application can use getsockname() after calling bind to learn the address and the port that has been assigned to it.

If the Internet address is equal to INADDR_ANY, we dont call getsockname.

Binding to a specific port number other than port 0 is discouraged for client applications, since there is a danger of conflicting with another socket already using that port number.

 

3.      connect()

It can be used in both mode stream and data gram. Faint.

For a connectionless socket (for example, type SOCK_DGRAM), the operation performed by connect is merely to establish a default destination address that can be used on subsequent send/WSASend and recv/WSARecv calls. Any datagrams received from an address other than the destination address specified will be discarded.

 

4.      WSARecvFrom()

if LPWSAOVERLAPPED lpOverlapped is NULL, then the function act as a blocking mode asynchronous function; while if WSAOVERLAPPED is set, the function return immediately, if no error happen, and with an return value of ERROR_IO_PENDING, then we may wait for the event set in overlapped.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值