社区
网络编程
帖子详情
WSADuplicateSocket 谁有使用示例
yangsf5
2008-04-17 10:08:45
如题
...全文
481
10
打赏
收藏
WSADuplicateSocket 谁有使用示例
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jiyougang
2011-05-29
打赏
举报
回复
刚刚看到这个函数,还是不知道具体用来做什么 ,如果其中一个进程创建了SOCKET那么另一个进程岂不是可以随便接受?是不是必须那个进程也要调用这个函数呢
DebugFan
2011-04-07
打赏
举报
回复
每天回贴可得10分可用分
菜牛
2008-04-26
打赏
举报
回复
克隆的socket应该是无法区分的,既然服务器要区分,又为什么要用克隆的方法呢,直接创建两个socket不行吗?
yangsf5
2008-04-26
打赏
举报
回复
[Quote=引用 5 楼 Mackz 的回复:]
至于WSADuplicateSocket的例子由于涉及两个进程的通讯,代码量比较多不好发,其实MSDN上WSADuplicateSocket函数的备注中已经很清晰描述了使用方法了。
[/Quote]
自己搞定了。。
其实我说的要个例子(vc版的),就是给个比msdn流程里更详细点的,例如,
1) WSASocket, WSAConnect这个第一步,我就不知道用socket直接创建可不可行。。
我的意思是,给的例子能讲到这点。。等等。。不需要能运行无误的。
现在不用了。。但是还有几个问题:
客户端的父进程WSADuplicateSocket,子进程用复制之后的套接字。。
子进程创建之后,服务器主要与子进程通信。。但也需定时给父进程发送消息。。
客户端怎么协调呢——怎么把相应的消息给相应的进程呢?
菜牛
2008-04-26
打赏
举报
回复
至于WSADuplicateSocket的例子由于涉及两个进程的通讯,代码量比较多不好发,其实MSDN上WSADuplicateSocket函数的备注中已经很清晰描述了使用方法了。
菜牛
2008-04-26
打赏
举报
回复
是否成功看函数返回值。
当然可以和Linux的socket通信,只要双方遵守同样的协议。
yangsf5
2008-04-26
打赏
举报
回复
WSAPROTOCOL_INFO wsai;
WSADuplicateSocket(s, childProcessID, &wsai);
设了断点。。看好像wsai没有获得成功。。
套接字是直接用socket创建的。。
在源进程和目标进程,是不是必须用WSASocket创建套接字?
用WSASocket创建的套接字能与linux的套接字通信么?
yangsf5
2008-04-26
打赏
举报
回复
哦,好的。。谢了。。
定时消息我在子进程接,再用管道到父进程。。
创建两个会损失服务器效率。
僵哥
2008-04-18
打赏
举报
回复
建议楼主参考Windows Platform SDK,或者可以下载MPICH2的Source进行研究
scq2099yt
2008-04-17
打赏
举报
回复
给个delphi的例子
// 发送方
New(lpProtocolInfo);
if WSADuplicateSocket(Session.s,WokeModeRec^.mProcessID,lpProtocolInfo)<>SOCKET_ERROR then
begin
Getmem(CopyData,sizeof(TCOPYDATASTRUCT));
CopyData.dwData:=2; // 文字消息
CopyData.cbData:=SizeOf(lpProtocolInfo^);
CopyData.lpData:=lpProtocolInfo;
Sendmessage(WokeModeRec^.mMainHandel,
WM_COPYDATA,
0,
LPARAM(CopyData));
FreeMem(CopyData);
end;
Dispose(lpProtocolInfo);
// 接收方
GetMem(pData,PCOPYDATASTRUCT(Msg.LParam)^.cbData);
CopyMemory(lpProtocolInfo,PCOPYDATASTRUCT(Msg.LParam)^.lpData,PCOPYDATASTRUCT(Msg.LParam)^.cbData);
FShareSocket := WSASocket(AF_INET, SOCK_STREAM, IPPROTO_IP, lpProtocolInfo, 0, WSA_FLAG_OVERLAPPED);
if (INVALID_SOCKET = FShareSocket) then
begin
Raise Exception.CreateFmt('%d',[WSAGetLastError]);
WSACleanup();
end;
FreeMem(pData);
[转]进程间传递描述符
有了 iovec ,就可以
使用
readv 和 writev 函数在一次函数调用中读取或是写入多个缓冲区,显然比多次 read ,write 更有效率。 readv 和 writev 的函数原型如下: [cpp] view plain ...
IOCP扩展方法AcceptEx, DisconnectEx, GetAcceptExSockaddr用法
示例
这篇文章记录了我刚接触IOCP模型时的理解,对于初学者,应该算不错的调试程序,仅有一个400...附加代码中有详细的注释,如果你已有IOCP经验,那么请不用在此浪费时间,这个
示例
不适合你。
示例
仅展示了IOCP中Accep...
关于Winsock:Winsock编程注意事项:共享套接字
引入了
WSADupli
cat
e
Socket
函数以启用跨进程的套接字共享。 源进程调用
WSADupli
cat
e
Socket
以获取目标进程标识符的特殊WSAPROTOCOL_INFO结构。 它
使用
一些进程间通信(IPC)机制将此结构的内容传递给目标进程。 然后,...
Windows
Socket
s 规范及应用
与计算机网络的普及相呼应的是Windows的广泛应用,现在在全世界各地已有超过四千万用户在
使用
不同版本的Windows。自1995年8月24日Windows 95正式推出以来,在短短的一个星期内销售量已超过100万份,有的零售商店...
API函数
CheckColorsInGamut|检查设备调色板中是否有色彩 CheckDlgButton|用对话按钮修改复选标记 CheckMenuItem|修改菜单项的复选标记属性 CheckMenuRadioItem| CheckRadioButton|用单选按钮放置一个复选标记 ...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章