社区
进程/线程/DLL
帖子详情
如何在多进程(不是多线程)里共享socket
sybsyb
2003-01-18 09:12:12
试了n久,发现不行.郁闷
...全文
258
7
打赏
收藏
如何在多进程(不是多线程)里共享socket
试了n久,发现不行.郁闷
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sybsyb
2003-01-20
打赏
举报
回复
谢谢大家问题已经解决
sybsyb
2003-01-18
打赏
举报
回复
这样还是不行,另一个程序的socket不是用WSPSocket创建的。
而且该函数还不支持98和me
功名半纸
2003-01-18
打赏
举报
回复
使用
int WSPDuplicateSocket (
SOCKET s,
DWORD dwProcessId,
LPWSAPROTOCOL_INFOW lpProtocolInfo,
LPINT lpErrno
);
并使用共享SOCKET(SHARE),MSDN中有说明!!!
功名半纸
2003-01-18
打赏
举报
回复
使用它的方法是由建立该 Socket 的 A 程序调用WSADuplicateSocket ,先取得系統中的一个 WSAPROTOCOL_INFO 结构,然后再利用微软进程件通讯IPC, Interprocess Communication),将这个取得的结构传给要分享这个 Socket 的另一 B 程序,接著 B 程序再调用 WSASocket 函数,将收到的 WSAPROTOCOL_INFO结构传給系統,取得一个新的 Socket Descriptor;z这样的步骤完成后,两个程序便可以分享同一个 Socket 了。各个程序件在使用一个 Shared Socket 时,彼此件动作的协调,必须由各个程序间相互负责,Winsock 系統並不为你负责这个协调工作!
功名半纸
2003-01-18
打赏
举报
回复
你是否想在UNIX下一样(fork())启动一子进程处理客户端的请求啊!!!
WinSock 由 Berkeley Socket 发展来的,它们的基本原理一致,所以这部分的实现核心及结构与 Unix 上一致。但由于 WinSock 的特点,程序实现细节仍存在差异。 首先,由于 Windows Sockets 的服务是以动态连接库 WinSock.DLL 形式实现的,所以必须要先调用 WSAStartup() 函数对 Windows Sockets DLL 进行初始化,协商 WinSock 的版本支持,并分配必要的资源。在应用程序关闭套接字后,还应调用 WSACleanup() 终止 Windows Sockets DLL 的使用,并释放资源,以备下次使用。其次, NT 产生子进程的函数 CreateProcess() 实现机制与 Unix 系统中的 fork() 不同, Socket 号不能直接传给子进程,所以父进程须调用函数 WSADuplicateSocket() 获得套接字描述符,使得子进程调用函数 WSASocket() 之后,与父进程共享相同的套接字描述符。其余部分基本与 Unix 相同在WINDOWS WINSOCK1下这样实现不了,但只有WINSOCK 2支持WSPDuplicateSocket !
Pipi0714
2003-01-18
打赏
举报
回复
学学,在多个进程都可以么,为什么不用进程间通信,比如说:油槽或者命名管道
功名半纸
2003-01-18
打赏
举报
回复
只有WINSOCK 2才支持,你在98和ME下可以安装WINSOCK2啊!!!
socket
--
多进程
,
多线程
服务器
在TCP协议中,建⽴立连接的两个进程各⾃自有⼀一个
socket
来标识,那么这两个组成 的
socket
就唯⼀一标识⼀一个连接。
socket
本⾝身有“插座”的意思,因此⽤用来描述网络连接的一一 对应关系. 二:通信中的大端小端的问题...
Python之
多进程
与
多线程
前言:为什么有人说 Python 的...2、为什么在Python
里
面推荐使用
多进程
而不是
多线程
? 1 基础知识 现在的PC都是多核的,使用
多线程
能充分利用CPU来提供程序的执行效率。 1.1 线程 线程是一个基本的CPU执行单元。...
多进程
以及
多线程
socket
编程
多进程
,
多线程
socket
编程与单进程不同的只是服务器端的不同,客户端是一样的。
多进程
:父进程fork子进程, 子进程退出,但是子进程的子进程仍在运行,变成了孤儿进程,由1号进程回收,父进程不用等待子进程的子...
多进程
及
多线程
的区别
多线程
共享
进程数据,
共享
简单;但同步复杂。 (1)
多进程
进程是程序在计算机上的一次执行活动,即正在运行中的应用程序,通常称为进程。当你运行一个程序,你就启动了一个进程。每个进程都有自己独立的地址空间...
socket
多线程
编程
线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可以看作是Unix进程的表亲,所有的线程都是在同一进程空间运行,这也意味着多条线程将
共享
该进程中的全部系统资源,如虚拟地址空间,文件描述符和...
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章