社区
网络及通讯开发
帖子详情
急,请教WSASend、WSARecv()函数
gxhxue
2007-08-21 07:19:42
当我在服务器端用WSASend()、WSARecv()函数发送接受数据时,WSASend()函数、WSARecv()函数的第一个形参SOCKET应该是服务器端的SOCKET还是客户端的SOCKET?
...全文
142
3
打赏
收藏
急,请教WSASend、WSARecv()函数
当我在服务器端用WSASend()、WSARecv()函数发送接受数据时,WSASend()函数、WSARecv()函数的第一个形参SOCKET应该是服务器端的SOCKET还是客户端的SOCKET?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
铖邑
2007-09-18
打赏
举报
回复
就是accept函数调用成功之后的返回值
pp616
2007-08-22
打赏
举报
回复
和WriteFile ReadFile类似。hFile就是要操作的文件的句柄。
你把它理解为文件操作都可以。
你要在哪个链接上做IO操作就用那个链接的Socket作为参数
不分服务器端和客户端。
i_love_pc
2007-08-21
打赏
举报
回复
The Windows Sockets WSASend function sends data on a connected socket.
int WSASend (
SOCKET s,
LPWSABUF lpBuffers,
DWORD dwBufferCount,
LPDWORD lpNumberOfBytesSent,
DWORD dwFlags,
LPWSAOVERLAPPED lpOverlapped,
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionROUTINE
);
Parameters
s
[in] A descriptor identifying a connected socket.
------------------------------------------------------------------------
The Windows Sockets WSARecv function receives data from a socket.
int WSARecv (
SOCKET s,
LPWSABUF lpBuffers,
DWORD dwBufferCount,
LPDWORD lpNumberOfBytesRecvd,
LPDWORD lpFlags,
LPWSAOVERLAPPED lpOverlapped,
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionROUTINE
);
Parameters
s
[in] A descriptor identifying a connected socket.
就是跟服务器端的socket建立连接的那个socket
IOCP (关于
WSA
S
end
,
WSA
Recv
调用)
IOCP (关于
WSA
S
end
,
WSA
Recv
调用)
IOCP中在
WSA
S
end
以及
WSA
Recv
的时候出现
WSA
_IO_P
END
ING情况的说明
应该是windows网络编程第二版里面提到过。现在整理一下。
1:在IOCP中投递
WSA
S
end
返回
WSA
_IO_P
END
ING的时候,表示异步投递已经成功,但是稍后发送才会完成。这其中涉及到了三个缓冲区。
网卡缓冲区,TCP/IP层缓冲区,程序缓冲区。
情况一:调用
WSA
S
end
发送正确的时候(即立即返回,且没有错误),TCP/IP将数据从程序缓冲区中拷贝到TCP/IP层缓冲区中,然后不锁定该程序缓冲区,由上层程序自己处理。TCP/IP层缓冲区在网络合适的时候,将
重叠I/O完成例程模型如何同时投递
WSA
Recv
和
WSA
S
end
参考自这篇文章: http://www.winsocketdotnetworkprogramming.com/winsock2programming/winsock2advancediomethod5g.html 推荐大家去上面看看,讲得很细致,一步一步都很详细。因为都是英文的,所以坚持吧~下面重点就解释一下其原理,是通过什么方式来使一个完成例程同时处理
WSA
Recv
和
WSA
S
end
的。首先我们
关于
WSA
RECV
与
WSA
S
END
,SOCKET_ERROR关闭997异常的问题
原文链接: http://www.xixis.net/doserver.net//read.php/2063.htm 最近写一个IOCP的服务器程序, 在
WSA
RECV
出现SOCKET_ERROR后,关闭与之相关的SOCKET结果出现异常997。 在网上找到一篇不错的文章,。 应该是windows网络编程第二版里面提到过。现在整理一下。 1:在IOCP中投递
WSA
S
end
返回
零字节
WSA
S
end
,
WSA
Recv
以下是Windows平台下两个
函数
的声明: int
WSA
S
end
( __in SOCKET s, __in LP
WSA
BUF lpBuffers, __in DWORD dwBufferCount, __out LPDWORD lpNumberOfBytesSent, __in
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章