社区
Linux/Unix社区
帖子详情
linux socket的使用问题,请教
奋斗的蜗牛2013
2011-02-10 10:06:32
加精
在linux中一个程序如何通过另外一个程序建立的socket发送接收数据,类似于钩子之类的。谢谢大家。
...全文
2135
76
打赏
收藏
linux socket的使用问题,请教
在linux中一个程序如何通过另外一个程序建立的socket发送接收数据,类似于钩子之类的。谢谢大家。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
76 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dungeonsnd
2011-07-04
打赏
举报
回复
[Quote=引用 41 楼 justkk 的回复:]
lz看看unix环境高级编程中,高级IPC,描述符传递一节吧
[/Quote]
qqrilxk
2011-05-23
打赏
举报
回复
楼主可以通过描述符传递来解决这个问题。即A进程创建socket,然后将此socket传递给B进程,(A,B两进程在同一台主机,可不互为父子进程),B进程接收到socket描述符后就可用此描述符来发送消息。详细参考实例见 http://fossd.net/forum.php?mod=viewthread&tid=598&extra=page%3D1 或博客:zgq.cublog.cn
xhuacmer
2011-02-21
打赏
举报
回复
Linux下的该种方法学习!
sharco
2011-02-20
打赏
举报
回复
楼主是要截包转发吗
xiaogang19880817
2011-02-20
打赏
举报
回复
进程内直接可用,进程间需要通过IPC
秦剑
2011-02-19
打赏
举报
回复
A程序是自己控制的还是别人的程序,不能再修改?
ycggyw1
2011-02-19
打赏
举报
回复
留爪,控件有啥接口,怎么用呢?
zhoubing0206
2011-02-18
打赏
举报
回复
进程内直接可用,进程间需要通过IPC, 这个是基本的概念。
小饕
2011-02-17
打赏
举报
回复
linux域套接字,可以传递描述符
小饕
2011-02-17
打赏
举报
回复
可以用linux域套接字,这样可以防止用tcp连接时被黑客利用
int soketpair
具体见《APUE》
wnx_u
2011-02-17
打赏
举报
回复
你的意思是不是相当于数据拦截和重发啊,如果是可以用原始套接字试试
efengyu
2011-02-17
打赏
举报
回复
不好意思,说错了,可以用描述符传递
efengyu
2011-02-17
打赏
举报
回复
通过共享内存,父子进程可以用同一个描述符。
memorymyann
2011-02-16
打赏
举报
回复
一个进程想通过另一个进程的socket传输数据,如果2个进程没有任何关系只能通过IPC,如果是父子进程,可以将socket资源直接传递给子进程。
zdyiamdd
2011-02-16
打赏
举报
回复
通过fork之后那个socket文件描述表就在两个进程之间存在两个引用,你就可以直接用那个了,不过就是可能要改程序结构,实在是麻烦了点
hpyyang
2011-02-15
打赏
举报
回复
fork()函数产生子进程能使用相对的SOCKET,或者通过共享内存,信号,消息等方式通知来处理
pylonxzealot
2011-02-15
打赏
举报
回复
我的经验:
socket 描述符号是依附于进程的, 不能在进程之间传递,但是可以在线程之间共享.
进程只有一种情况可以共享或传递socket描述符. 主进程申请描述符号, fork后,子进程可以使用这个socket.
---
二个完全不相干的进程, 我目前还没有找到方法能够传递socket描述符. (就是如LZ说的, 一个进程建立一个socket连接, 通过方法传递给另外一个进程使用).
xiliuhu
2011-02-15
打赏
举报
回复
这两个程序之间建立一个socket的长连接
czl21
2011-02-14
打赏
举报
回复
以前看过一个win32做的补丁是类似的实现,不过是在同一个进程下的,不在同一进程下的话,怎么取到socket函数的内存地址就是个问题了。
1) 读取socket函数机器码在内存开始位置10个字节。
2. 在原开始地址处写入跳转语句。跳转到你的函数。还可以加入一些控制语句,比如让原socket函数直接返回。
3. 执行读出的机器码后,跳回原socket函数。
奋斗的蜗牛2013
2011-02-14
打赏
举报
回复
有源代码,就是A B两个程序,谢谢大家支持啊。我比较菜,很多东西不明白。IPC是一种方式,但是这样就存在了数据的转移,我想直接在A程序使用B程序中建立的socket,不想让B程序发送数据。
加载更多回复(29)
Linux
Socket
编程实战第1季第1部分
课程特点: 1、手把手的实际操作过程;2、引导学员一步步去思考;3、网络技术方面初级的一步步进入
linux
socket
编程的世界;本课程是
linux
socket
编程的一小部分,从无名套接口开始,然后逐步深入,这应该是很多课程所没有的。以通俗的比照讲清楚一些概念,更多的是如何一步步通过代码去实现,并辅之以一些小的项目来更好的理解
linux
socket
编程的技巧和方法。
linux
socket
检测网络断开异常,
linux
socket
如何检测断开
请教
在
linux
下如何快速检测到
socket
正常或不正常断开,我想通过recv和send的返回值来判断是否连接异常,但是不成功,下面是我的测试代码,连接成功后如果我断开客户端,那么服务端不会打印错误信息而是等待几秒后直接终止;如果断开服务端,客户端的recv不再阻塞,而且返回值一直是0,请高手指点。//服务端#include#include#include#include#include#incl...
linux
mysql
socket
与tcp访问_
请教
大家,
Linux
下怎么模拟高并发客户端进行
socket
TCP 连接?...
多维度架构之实现百万并发netkiller:多维度架构之实现百万并发zhuanlan.zhihu.com在上一节《多维度架构之会话数》中从运维角度详细介绍了会话数,本章将从开发角度介绍TCP
Socket
最大连接数。我先来问几个
问题
,然后带着
问题
思考,最后我再逐一解答。一台服务器究竟最大能支持多少个网络连接?一台服务器能做到百万的连接数吗?你想过怎么实现 百万的连接吗?理解服务器端与客户端服务器...
linux
高吞吐量
socket
接收,
socket
吞吐量和时延的困惑
本帖最后由 remaper 于 2013-12-19 01:44 编辑hi,各位好
请教
一个
问题
,最近做了个测试,机器8core + 12G内存,两台机器,ping值0.1ms一台部署client一台部署server数据包大小512bytes同步模式下(发一个收一个,再发一个收一个),8线程,每个线程32个
socket
,
使用
epoll来管理数据包的收发,总吞吐量可达5w个数据包每秒,数据包的平均时延...
linux
socket
sin_addr.s_addr,
请教
:一个
linux
下
socket
编程的
问题
!
写了一段程序,想实现以下功能:客户端向服务器发送数据,服务器收到数据后打印出客户端的IP地址和发送数据的端口号,并且发送一个回复信息到这个IP和端口号。服务器的ip是211.84.93.111。用5060端口接收数据(客户端和服务器运行于同一台机器上)。但是运行的时候出现了下面的
问题
:1先运行server程序,再运行client程序。第一次运行client时server给出的ip和端口号总是不...
Linux/Unix社区
23,124
社区成员
74,508
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章