当我们建立了Oracle数据库后,必须合理地配置监听程序和网络服务名后,客户应用才能访问我们的数据库。所以服务器端必须配置监听程序,而网络服务名在客户端跟服务器端都可以配置。看如下说明:
1。服务器端的监听程序用于接收客户端的连接请求。
在建立了Oracle数据库之后,为了使得客户应用可以访问特定数据库,必须要在监听程序中追加该数据库。一个监听程序可以监听多个Oracle数据库,多个监听程序也可以监听同一个数据库。但是监听程序只能用于同一台服务器上的Oracle数据库。安装了Oracle时,会自动建立默认的监听程序LISTENER一般只需要将需要使用的数据库追加到这个监听程序上就可以了。
监听程序使用的默认端口为1521
保存了监听程序配置之后,必须要重新启动监听程序才能生效。windows中可以在“服务”中重新启动。
例如:假如我在101502745上装了ORACLE服务器,端口是1521,为了让其他客户端应用(不管是本地的还是其他的)可以访问我的名为TESTDB的数据库,首先得在服务器上配置监听器:进入NET MANAGER 新建一个端口,如命名为LISTENER,配置主机名:如101502745和端口1521,配置全局数据库名:如TESTDB,然后保存就好了2。客户端需要配置网络服务名,应用程序使用网络服务名才能访问Oracle数据库, 一般使用数据库名作为服务名。注意: 网络协议要与监听程序的一致(如TCP/IP)例如:假如我在101502746上装了ORACLE客户端,进入NET MANAGER,新建一服务命名,如:TEST,然后配置你要连接的DB服务器名字和端口好,如:101502745, 1521,配置服务名,必须跟监听端口的全局数据库名一样:如TESTDB,然后你可以通过输入用户名和密码测试连接成不成功了3。利用客户端工具测试
在101502746上通过SQLPLUS连接101502745上的DB:TESTDB, 输入用户名密码,HOST STRING输入TEST,看连接是不是成功
逻辑不正确
accSck = sckAccept();//是一个阻塞。当处理完一次后一直处于等待下一个连接。
正确流程写法:
// 开始监听
sck = new Socket(AddressFamilyInterNetwork, SocketTypeStream, ProtocolTypeTcp);
IPAddress ip = IPAddressParse(IP);
IPEndPoint point = new IPEndPoint(ip, port);
sckBind(point);
sckListen(10);
while(true)
{
accSck = sckAccept();
thread th=new Thread(word);
thisbackground=true;
thstart(accsck);
}
private void work(object socket)
{
Socket accSck=(Socket)socket;
byte[] buffer = new byte[1024 1024 10];
whil(true)
{
try{
accSckReceive(buffer); // 将字符流转换成文件 nRAR(fileName);
}catch
{
accSckClose();
}
}
}
以上就是关于oracle数据库怎么net manager配置监听全部的内容,包括:oracle数据库怎么net manager配置监听、用C#写了个Windows服务程序,监听某个端口是否有数据传来。但是为什么只能监听到第一次数据流、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)