如何使用SOCKET建立通讯机制(500分)(100分)

  • 主题发起人 主题发起人 oalongteng
  • 开始时间 开始时间
Socket的概念要讲起来就...... ...... ......
用TCP的话丢包和超时控制真不需要自己太操心的.
 
SOCKET接口其实就是应用程序和TCP之间的桥,说白了就是API集,目的方便程序员编写网络程序,而不必关系低层。既然这样,那我如何来用SOCKET编写我上面所说的要求?我看了SOCKET2.PAS,无非就那么几十个函数。能达到我的要求吗?怎么编写控制TCP丢包和超时,以及数据包的完整性?就算用TCP它本身也会有丢包发生,难道它就能百分百的保证?
 
hehe,,楼主说的是呀。

--既然这样,那我如何来用SOCKET编写我上面所说的要求?
正如您自己所说的,你知道用Socket方便的写网络程序,而不必关心底层。说到底也就是发送和接受两个函数的事情。

--我看了SOCKET2.PAS,无非就那么几十个函数。能达到我的要求吗?
确实,WinSock就那么几十个函数(偶没去数,但估计不到一百个)。听您的意思是函数少了可能满足不了您的需求,但你在顶楼说希望用Socket实现。要用他实现,怎么也得在这几十个函数里发挥呀。选择正确的协议和模型,应该能满足要求。

--怎么编写控制TCP丢包和超时,以及数据包的完整性?
"TCP丢包和超时,以及数据包的完整性"的的确确不需要自己“编写”,如果没有处理这几样,他就不能叫TCP了。但有些关于TCP运行参数的设置到是真的,修改起来很简单,也在那几十个函数里。

--就算用TCP它本身也会有丢包发生,难道它就能百分百的保证?
不错,TCP本身也会有丢包发生,他不能百分百保证。但是,至少他在发生错误时能通知到您,您可以做出相应的处理。而且,在他发生错误时,八成是链路层以下发生了问题(因为,就您需要的数据两来说,缓存部分出问题的可能性不大)。这种时候,可能您用什么办法也没办法了。
 
To LeeChange
那我们公司怎么还使用那个叫什么DSG的通讯接口来实现,既然TCP那么可靠,我们还需要TCP/IP编程什么呢?直接SOCK()BIND()LISTEN()CONNECT()ACCEPT,SEND 不就完成网络通讯。。。。。但如果SOCKET编程就这几样东西,那太叫人失望。如果不用SOCKET,那又如何实现呢?不懂的太多。。。。望赐教!
 
hehe,照您说“无非就那么几十个函数”,可您知道要用好这几十个函数可不容易呀。
反正偶是花了很大工夫才会用点皮毛(呵呵,是笨了点),光是相关的书就看了n本。
相信如果你真的研究了Socket编程,就不会觉得“无非就那么几十个函数”也不会觉得“太叫人失望”了。

ps:您公司用什么东东,为什么用,偶真的不太清楚。
 
TO LeeChange
你看了相关的几本书主要讲SOCKET的什么方面呢?能否说一说啊
我已经说过了啊DSG其实是和CORBA竞争的同类产品,只是最后CORBA成为标准。。。
那这几十个函数还真能组合排列一下??应该有别的什么思路来使用吧,不然不会出现N本SOCKET的书哦。。。呵呵。谢谢,再请赐教!
you are welcome!
 
按照偶看的顺序:
《Windows网络编程》(第2版)
《TCP/IP详解--卷1》
《Unix网络编程--第1卷》(第2版) --为了看此书,中间穿插看了《Unix环境下高级编程》
《TCP/IP祥解--卷2》 正在进行时,太厚,估计还要看一阵子。
别的思路当然有,光WinSock I/O方法就有那么多了。详情参阅以上几本书。
 
这些我也在看。。。除了《Unix网络编程--第1卷》(第2版)没看之外。没有详细看,择要详细看了TCP/UDP,答案会在那里。。。。。。
TO
LeeChange:
能不能提供SOCKET编写通讯接口的可靠性分析!500附上,决不失言。
要求已经在上面详细说了啊。如果不能,那这贴就到此了。100分全给你,感谢支持!
 
关于你的要求,详细看《详解卷1》的18,20-23章,会找到答案。

--能不能提供SOCKET编写通讯接口的可靠性分析!
还真不好说,《windows网络编程》第6章有个表(哪一页不记得了),对比了各种模型的性能和连接成功次数。但那都是对K以上数量连接的,你这里要的连接除了网络本身偶实在看不出来会有什么故障。

ps:分到是无所谓的,留个qq吧,以后就不用来回发贴了。
 
接受答案了,我的QQ:58414
LeeChange-100
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
873
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部