新手问:sokect编程,可以客户端、服务器端都在同一台机器上嘛?

时间:2022-02-03 06:03:04
现在碰到一个这样的问题:服务器端的服务程序有异常错误发生(主要是内存溢出问题),现在老大要求我做一个服务,每隔一段时间发送信息给这个服务程序,如果无信息返回则证明服务程序可能发生错误没有正常运行,然后重启此服务。
请问这种方法是否行得通???
我以前没接触过socket编程,各位给点建议,有好的socket编程电子书或实例请发给我,谢谢。
e-mail:xionghui_liu@163.com

13 个解决方案

#1


服务程序用的是ServerSocket控件。

#2


可以的!这个方法可行!

#3



发给你例子了,收邮件吧。

但是,伙计,你得需要一个后台监听程序吧。你的服务都死了,你不能把server socket 放在服务里面啊,服务死了,端口估计就不灵了,来个后台监听程序比较合适。

#4


现在使用Indy了因为从BCB2006开始这个组件已经不在组件面板出现了。

#5


弱弱的问一句:如果服务程序发生异常的话,是不是客户端send数据的时候就会发生错误呢?就如gameloader所说的“服务死了,端口估计就不灵了”

那我应该可以采用clientsocket控件完成这项工作咯?

to:ydlchina
服务程序是用BCB 6.0编写的。

#6


弱弱的问一句:如果服务程序发生异常的话,是不是客户端send数据的时候就会发生错误呢?就如gameloader所说的“服务死了,端口估计就不灵了”

那我应该可以采用clientsocket控件完成这项工作咯?

to:ydlchina
服务程序是用BCB 6.0编写的。

#7


顶上去!!!

#8


楼主表达意思的方法很有意思,总是要仔细考虑一番

我的理解是楼主是在需要一个监视服务器上的某个程序运行情况(这个程序也许做成了服务器的某个服务)。如果是这样楼主的想法完全可以,不存在端口问题。

我的程序是CB6做的,因为在CB6的组件面板就可以找到这两个组件,cb2006以后就找不到了,需要动态添加。

其它问题就看楼主如何实现了,如果楼主做过类似通讯小程序应该没问题,如果楼主连这两个组件都不了解,建议楼主到网上搜点资料看看,very easy

#9


TO:ydlchina
你的理解很正确,哈哈。我表达的时候总是怕别人不理解我说什么,所以“总是要仔细考虑一番”。
我对这个问题很疑惑:如果服务程序发生异常的话,是不是客户端send数据的时候就会发生错误呢?就如gameloader所说的“服务死了,端口估计就不灵了.            能回答我么,我问了2次拉。

谢谢ydlchina、gameloader发给我的例子,不过我都没来得及看,我以前从没弄过通讯类的程序,好长一段时间在用PB,现在就是因为这个问题才用BCB。我现在在查资料,打算自己动手做,因为看了网上资料越来越清晰了,做出来后会仔细参看你们的程序。

#10


首先要清楚客户端是以什么方式给服务器端发送消息的

#11


治标不治本啊,内存溢出问题肯定是要解决的!

如果一定要做个监控程序的话,为什么非要通过socket通信呢?windows有消息、共享内存等等很多进程间通信机制啊

#12


应该以解决根本问题为主,监控手段只是一个辅助

#13


已经完成了。
to:hanfq
 阻塞方式发送的。
to:xpdavis
“治标不治本啊”,这个嘛,要看实际情况和领导咯。
“为什么非要通过socket通信呢?”这个系统PDA是客户端,一台服务器放服务程序处理数据库操作。因为经常发生PDA操作失败问题追查到是服务程序问题,所以最直接就想出这个办法。监控程序我也没弄过,能介绍些好的入门资料给我看看嘛,我自己试试!大虾们别笑话。

#1


服务程序用的是ServerSocket控件。

#2


可以的!这个方法可行!

#3



发给你例子了,收邮件吧。

但是,伙计,你得需要一个后台监听程序吧。你的服务都死了,你不能把server socket 放在服务里面啊,服务死了,端口估计就不灵了,来个后台监听程序比较合适。

#4


现在使用Indy了因为从BCB2006开始这个组件已经不在组件面板出现了。

#5


弱弱的问一句:如果服务程序发生异常的话,是不是客户端send数据的时候就会发生错误呢?就如gameloader所说的“服务死了,端口估计就不灵了”

那我应该可以采用clientsocket控件完成这项工作咯?

to:ydlchina
服务程序是用BCB 6.0编写的。

#6


弱弱的问一句:如果服务程序发生异常的话,是不是客户端send数据的时候就会发生错误呢?就如gameloader所说的“服务死了,端口估计就不灵了”

那我应该可以采用clientsocket控件完成这项工作咯?

to:ydlchina
服务程序是用BCB 6.0编写的。

#7


顶上去!!!

#8


楼主表达意思的方法很有意思,总是要仔细考虑一番

我的理解是楼主是在需要一个监视服务器上的某个程序运行情况(这个程序也许做成了服务器的某个服务)。如果是这样楼主的想法完全可以,不存在端口问题。

我的程序是CB6做的,因为在CB6的组件面板就可以找到这两个组件,cb2006以后就找不到了,需要动态添加。

其它问题就看楼主如何实现了,如果楼主做过类似通讯小程序应该没问题,如果楼主连这两个组件都不了解,建议楼主到网上搜点资料看看,very easy

#9


TO:ydlchina
你的理解很正确,哈哈。我表达的时候总是怕别人不理解我说什么,所以“总是要仔细考虑一番”。
我对这个问题很疑惑:如果服务程序发生异常的话,是不是客户端send数据的时候就会发生错误呢?就如gameloader所说的“服务死了,端口估计就不灵了.            能回答我么,我问了2次拉。

谢谢ydlchina、gameloader发给我的例子,不过我都没来得及看,我以前从没弄过通讯类的程序,好长一段时间在用PB,现在就是因为这个问题才用BCB。我现在在查资料,打算自己动手做,因为看了网上资料越来越清晰了,做出来后会仔细参看你们的程序。

#10


首先要清楚客户端是以什么方式给服务器端发送消息的

#11


治标不治本啊,内存溢出问题肯定是要解决的!

如果一定要做个监控程序的话,为什么非要通过socket通信呢?windows有消息、共享内存等等很多进程间通信机制啊

#12


应该以解决根本问题为主,监控手段只是一个辅助

#13


已经完成了。
to:hanfq
 阻塞方式发送的。
to:xpdavis
“治标不治本啊”,这个嘛,要看实际情况和领导咯。
“为什么非要通过socket通信呢?”这个系统PDA是客户端,一台服务器放服务程序处理数据库操作。因为经常发生PDA操作失败问题追查到是服务程序问题,所以最直接就想出这个办法。监控程序我也没弄过,能介绍些好的入门资料给我看看嘛,我自己试试!大虾们别笑话。