函数名
vtcp_setsockopt
声明
int WINAPI vtcp_setsockopt(VTCP_SOCKET socket, int level,int optname,char* optval,int optlen);
描述
设置VTCP句柄工作参数。
输入
VTCP_SOCKET socket: VTCP句柄,由vtcp_socket函数创建。
int optname: 设置选项。
char* optval: 选项对应数据。
int optlen:选项对应数据大小。
输出
无
返回值(错误码=0 成功)
ERROR_INVALID_HANDLE: VTCP句柄不正确。
ERROR_INVALID_STATE:
VTCP句柄状态不正确。
ERROR_INVALID_PARAMETER: 参数不正确。
其他错误参考windows
说明
|
level |
optname |
说明 |
optval |
optlen |
|
SOL_SOCKET |
VTCP_SO_LINGER |
逗留时间 |
LINGER 结构 |
sizeof(LINGER) |
|
SOL_SOCKET |
VTCP_SO_CONTIMEO |
连接超时(阻塞模式)毫秒 |
DWORD |
sizeof(DWORD) |
|
SOL_SOCKET |
VTCP_SO_RCVTIMEO |
接收超时(阻塞模式)毫秒 |
DWORD |
sizeof(DWORD) |
|
SOL_SOCKET |
VTCP_SO_SNDTIMEO |
发送超时(阻塞模式)毫秒 |
DWORD |
sizeof(DWORD) |
|
SOL_SOCKET |
VTCP_SO_KEEPALIVE |
保活设置 |
tcp_keepalive 结构 |
sizeof(tcp_keepalive) |
|
SOL_SOCKET |
VTCP_SO_PACKET_SIZE |
包最大大小 |
int |
sizeo(int) |
|
SOL_SOCKET |
VTCP_SO_PACKET_COUNT |
包最大缓存 |
int |
sizeo(int) |
|
SOL_SOCKET |
VTCP_SO_PACKET_LOSS_PRECENT |
包最大丢失率(%) |
int |
sizeo(int) |
|
|
|
|
|
|
参考
#define SOL_SOCKET 0xffff
/* options for socket level */
enum EVTcpSO
{
VTCP_SO_LINGER =
1,//逗留时间(LINGER)
VTCP_SO_CONTIMEO =
2,//连接超时(int)
VTCP_SO_RCVTIMEO =
3,//接收超时(int)
VTCP_SO_SNDTIMEO =
4,//发送超时(int)
VTCP_SO_KEEPALIVE =
5,//保活设置(keepalive)
VTCP_SO_PACKET_SIZE =
6,//最大包大小(int)
VTCP_SO_PACKET_COUNT =
7,//最大包缓存(int)
VTCP_SO_PACKET_LOSS_PRECENT = 8,//最大丢包率(int)(百分比)
};
struct tcp_keepalive {
ULONG
onoff;
ULONG
keepalivetime;
ULONG
keepaliveinterval;
};
struct linger {
u_short l_onoff;
/* option on/off */
u_short l_linger; /* linger time */
};