论坛: 编程破解 标题: programming model(tcp socket) 复制本贴地址    
作者: cimsxiyang [cimsxiyang]    版主   登录
programming model(tcp socket)
大家都知道,tcp是面向连接的,所以呢,tcp应用程序采用的是c/s模式,在通信之前必须先要建立连接。
一般情况下:
---------------------------------client-------------------------
1,打开一个socket
2,发起连接请求(connect)
3,if连接成功,then进行数据交换(read,write,send,recv等)
4,关闭连接(shutdown,close)
---------------------------------server-------------------------
1,打开一个socket
2,将scoket bind到服务器地址上。
3,指定socket为服务器socket(listen),作好接收request的准备
4,等待连接请求(accept)
5,if有连接请求 then 连接建立,进行数据交换(read,write,send,recv等)
6,shutdown ,close。
-----------------------------------------------------------------
再复杂的tcp应用程序也是离不开这个模式的。


地主 发表时间: 04/06 20:21

回复: group [group]   论坛用户   登录
能不能给出下面的完整例程?


----服务端----
打开一个端口=>接受客户端传来的一段信息=>关闭连接

----客户端----
建立连接=>连接到上述服务端的指定端口=>发送一段数据=>关闭连接

B1层 发表时间: 04/06 20:31

回复: cimsxiyang [cimsxiyang]   版主   登录
就小谰兄弟说的,我有一些看法,不知道我的理解是否正确。
只有当server监听到连接请求时候,才能建立连接。所以呢,我觉得你的问题应该是这样:
----服务端----
监听一个端口=>建立连接=>接受客户端传来的一段信息=>关闭连接

----客户端----
发送连接请求=>建立连接=>发送一段数据=>关闭连接
也就是一个主动和被动的关系
请多指教!
谢谢!


[此贴被 夕阳(cimsxiyang) 在 4月6日20时38分 编辑过]

B2层 发表时间: 4/6 20:49

回复: cimsxiyang [cimsxiyang]   版主   登录
补充一下:
我上面描述的是通讯过程本身,
小谰说的是指:先在服务器上打开某一个端口,然后监听该端口........

B3层 发表时间: 04/07 00:00

回复: group [group]   论坛用户   登录
我说的稀里糊涂的,你明白就好

B4层 发表时间: 04/07 18:24

回复: cimsxiyang [cimsxiyang]   版主   登录
是我太.......
:)
对了,我完整的例程已经写出来了,很粗拙,请给点意见!


B5层 发表时间: 04/07 18:27

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号