SOCKET编程中的一些疑问(200分)

  • 主题发起人 主题发起人 waterflow
  • 开始时间 开始时间
W

waterflow

Unregistered / Unconfirmed
GUEST, unregistred user!
1:DElPHI6自带的clientsocket是不是有BUG。<br> &nbsp; A:调用CLOSE无法关闭连接,我使用netstat查看端口和连接时发现CLOSE没有真正关闭连接。<br> &nbsp; B:当客户端关闭和服务器的连接后重新连接,此时连接成功但是再调用clientsocket.socket.sendtext不能将内容发送给服务端,非要重新运行客户端程序。<br> &nbsp; C:clientsocket、serversocket均使用非阻塞方式。<br> &nbsp; D:这个问题我在大富翁以前的一些帖子中也发现了,但大多是不了了之或采用其他的组件。<br> &nbsp; E:在实际情况中,如果服务程序是别的公司写的,只是告诉你IP和端口,如何编写客户端程序【是否采用组件,采用那个组件,何种模式】以实现客户端程序能够自动重连服务器并发送信息给服务器。<br>2:关于多客户端情况时阻塞模式和非阻塞模式的选择。<br> &nbsp; A:我仔细看了大富翁的一些相关帖子,有些高手推荐阻塞+线程的模式,有些高手推荐非阻塞模式。<br> &nbsp; B:我手头96年的“Windows Sockets 规范及应用”一文中推荐非阻塞模式,但是大富翁有些高手说那是微软当时没有解决阻塞模式的一些问题的情况下的说法,现在微软已经解决了改问题,有没有最近出版的这方面比较权威的电子资料?<br> &nbsp; C:如果做一个server程序,客户端是满足windows socket规范的任意程序时,您是否会采用delphi的组件,如果采用一般采用那些组件,采用阻塞还是非阻塞模式,如何实现自动重连。<br> &nbsp; D:如果做一个client端程序,服务端是满足windows socket规范的任意程序时,要实现客户端自动重连要求时您是否会采用delphi的组件,如果采用一般采用那些组件。<br>3:有没有比较好的源代码供参考<br> &nbsp;A:在delphi6的环境下有没有较好的关于sokcet的源代码可供参考,我在中国盟动力源码站下载了一些源码,但是均不怎么样。
 
用Indy吧,Indy用的就是阻塞模式。并且比TClientSocket,TServerSocket要好用的多。建议用Indy9.0
 
如果真的想使用Delphi来编写网络的东西。<br>建议你使用API函数来作。比用INDY简单多了。同时INDY有的属性没有(例如设置KEEPALIVE属性)。并且设置起来非常麻烦。但是使用API来加这种属性就非常方便!
 
WINDOWS下网络编程的模型就那么几中。如果用于管理少量的连接的你就用SELECT模型(可以在LIUNX下使用)。如果用于管理大量连接你使用IOCP模型(我测试中可以管理18000个连接)。使用什么模型主要看你的应用了!没有最好的只有最合适的!
 
非常感谢crazyman2006、fxh7622的高见。<br>fxh7622:<br> &nbsp; 根据你的回答,认为你在通讯方面有很高的造诣。有几个事情想请教:<br> &nbsp; &nbsp;1:你手头有没有这方面的电子资料和一些例子代码,能否邮一份给我 &nbsp;邮箱wenqihe@sina.com.cn。<br> &nbsp; &nbsp;2:我这两天也看过、实践过一些代码。发现如果我的服务端程序做的不好的话,客户端程序重连后的工作会有问题,这时候就出现问题:实际的情况中很有可能是不同的公司写服务端程序和客户端程序,编程的语言、操作系统平台均可能不一样,如何用DELPHI编写一个比较通用的程序,是不是直接采用API,不使用DELPHI的组件?<br> &nbsp; 非常感谢: &nbsp;如果方便的话,请将您的HOTMAIL的联系方式发到我的邮箱。
 
用什么方式都无所谓的INDY组件的实现也是使用的API呀呵呵!<br>如果对方有指定的IP和端口,那你这边只要编写客户端程序就可以了!<br>其实很简单的。<br>connect函数就可以了。如果返回正确,你就可以使用这个套接字发送数据了!<br>至于你是用什么模型,这个你就不用管了。个人认为模型主要使用于服务端的程序(就是调用ACCEPT函数和BIND函数的一端了呵呵)。<br>如果还有什么问题你可以加我的QQ:513479626
 
fxh7622:非常感谢。<br> &nbsp; &nbsp;QQ我不用,想想可能会有较多的人向你请教问题,就不打扰了。<br> &nbsp; &nbsp;你能否推荐一下内容没有过期的SOCKET编程方面一些好的资料,谢谢。
 
看看<br>1:TCP/IP协议 三卷中的 卷一:协议。<br>2:WINDOWS网络编程技术.。
 
多人接受答案了。
 
后退
顶部