社区
C++ 语言
帖子详情
oracle进程老是与我抢端口,怎么解决?
luck_wei
2010-09-13 03:58:37
我的程序是linux环境下开发的,初始化时启动socket监听23456端口;
初始化完成后使用lsof查看23456端口发现oracle的进程也在监听这个端口;
谁知道什么原因?
...全文
185
20
打赏
收藏
oracle进程老是与我抢端口,怎么解决?
我的程序是linux环境下开发的,初始化时启动socket监听23456端口; 初始化完成后使用lsof查看23456端口发现oracle的进程也在监听这个端口; 谁知道什么原因?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luck_wei
2010-09-16
打赏
举报
回复
[Quote=引用 18 楼 justkk 的回复:]
你的程序中有没有创建子进程?
[/Quote]
有
justkk
2010-09-16
打赏
举报
回复
或许是看起来子进程监听了那个端口..
子进程有没有调用exec()?
luck_wei
2010-09-15
打赏
举报
回复
[Quote=引用 12 楼 wjjll123 的回复:]
晕,我以前搞java的时候。也正常这样。oracle总是和我抢端口。我也懒得改oracle用的端口。每次都是在oracle用那个端口之前,我就先占了那个端口。。。。
然后我程序关了就把oracle也关了。。。。。这样就行了。。。。不过治标不治本啊。。。
[/Quote]
这也是个办法,不过挺麻烦的。
luck_wei
2010-09-15
打赏
举报
回复
[Quote=引用 13 楼 wangjianbo1123 的回复:]
我理解的是不可能两个程序监听同一个端口,如果可以,那么,当有数据来的时候,这两个程序都会收到相应的数据,这个不是乱套了吗?再说了,像oracle这样的进程,不可能监听这个端口的,常用的进程一般都是监听1024以下的端口。 出现你这种情况我觉得有可能是你在退出你的程序后,没有关闭监听的套接字(closesocket())试试看
[/Quote]
确实很难理解这个现象。感觉就像oracle的进程排在你进程的后面,如果你的进程退出后它就马上占了这个端口。但是有意思的是我如果不监听任何端口,它也不做任何操作。
如果直接杀掉进程就无法关闭监听的套接字。
zhanshen2891
2010-09-15
打赏
举报
回复
你也设置端口重用就可以了
wangjianbo1123
2010-09-15
打赏
举报
回复
我理解的是不可能两个程序监听同一个端口,如果可以,那么,当有数据来的时候,这两个程序都会收到相应的数据,这个不是乱套了吗?再说了,像oracle这样的进程,不可能监听这个端口的,常用的进程一般都是监听1024以下的端口。 出现你这种情况我觉得有可能是你在退出你的程序后,没有关闭监听的套接字(closesocket())试试看
wjjll123
2010-09-15
打赏
举报
回复
晕,我以前搞java的时候。也正常这样。oracle总是和我抢端口。我也懒得改oracle用的端口。每次都是在oracle用那个端口之前,我就先占了那个端口。。。。
然后我程序关了就把oracle也关了。。。。。这样就行了。。。。不过治标不治本啊。。。
luck_wei
2010-09-15
打赏
举报
回复
netstat -an|grep 23456查看确实只有一个
但是问题是,如果我的程序退出了端口就被占用了。这个怎么解释?
justkk
2010-09-15
打赏
举报
回复
你的程序中有没有创建子进程?
genlic
2010-09-15
打赏
举报
回复
肯定是你的问题。。。
justkk
2010-09-13
打赏
举报
回复
[Quote=引用 9 楼 luck_wei 的回复:]
引用 7 楼 justkk 的回复:
你是说你的程序杀掉之前,和oracle同时监听23456端口??
是的,只不过我的程序排在前面。
[/Quote]
哦?同一个端口能同时被两个程序监听?
你用netstat -an|grep 23456看看呢..
luck_wei
2010-09-13
打赏
举报
回复
[Quote=引用 7 楼 justkk 的回复:]
你是说你的程序杀掉之前,和oracle同时监听23456端口??
[/Quote]
是的,只不过我的程序排在前面。
mengde007
2010-09-13
打赏
举报
回复
设置参数让端口重用。
justkk
2010-09-13
打赏
举报
回复
你是说你的程序杀掉之前,和oracle同时监听23456端口??
luck_wei
2010-09-13
打赏
举报
回复
[Quote=引用 4 楼 justkk 的回复:]
你的程序退出后,那端口也不是LISTEN状态吧
不影响你的程序使用
[/Quote]
是LISTEN状态
luck_wei
2010-09-13
打赏
举报
回复
整个过程是这样的:
1、程序启动之前23456端口在系统中未被占用
2、程序启动后23456端口(监听成功,可以与其他进程进行通信),此时oracle的进程也监听此端口
3、杀掉程序释放23456端口,但是oracle的进程并不释放
4、再次启动程序时监听23456端口失败
justkk
2010-09-13
打赏
举报
回复
你的程序退出后,那端口也不是LISTEN状态吧
不影响你的程序使用
冻结
2010-09-13
打赏
举报
回复
你去找一个别人不用的端口用。
luck_wei
2010-09-13
打赏
举报
回复
程序中确实使用了oracle数据库,但问题是当我的程序退出以后oracle的进程并不退出依然占有着此端口。
justkk
2010-09-13
打赏
举报
回复
不是吧,应该是你的程序使用了oracle数据库,让lsof看起来是这样子了..
VMWare安装
Oracle
11g详细过程
###
Oracle
11g在VMWare虚拟机中的安装过程详解 #### 安装环境与准备 在开始介绍具体的安装步骤之前,我们先来了解一下本案例中的安装环境和准备工作。 - **宿主操作系统**: Windows XP SP3 - **硬件配置**: 2GB...
ORACLE
常见错误代码的分析与
解决
三
4. **使用OPS**:
Oracle
Parallel Server(OPS)可以提高系统的容错性,但并不总是
解决
问题的最佳方案。 **ORA-03113: End-of-File on Communication Channel** 这个错误表示在通信通道上遇到了意外的文件结束,...
Oracle
监听器被优化大师挂掉后的完美
解决
方法
Oracle
监听器是
Oracle
数据库系统的重要组成部分,它负责管理和控制客户端与数据库服务器之间的连接。当监听器出现问题,例如被优化大师挂掉,会导致数据库服务不可用,严重影响系统的正常运行。本篇将详细介绍如何...
mysql和
oracle
的
端口
被占用_
Oracle
占用8080
端口
问题的
解决
可能在本地同时安装过Tomcat和
Oracle
的人都会知道,安装完
Oracle
...这样将和我们本地一些使用该
端口
的应用冲突,比如tomcat、jboss等,虽然这些
端口
是可以修改的,但总是不爽
oracle
一直占用这个
端口
。其实那是
Oracle
...
Oracle
需要什么需要,访问
Oracle
需要开放哪些
端口
?
如果之间有防火墙的话,还要注意:要使
Oracle
客户端能正常连接到设置有防火墙的
Oracle
服务器,单开放一个1521或自定义的监听
端口
是不够的。昨天晚上为了测试BOM的多层转单层程序,而需要连接到服务器上的
Oracle
将...
C++ 语言
65,206
社区成员
250,519
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章