免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10205 | 回复: 16
打印 上一主题 下一主题

Stevens写的中文版SOCK程序(源码) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-10-22 18:24 |只看该作者 |倒序浏览
我从学网络一直以来就对Stevens书中的那个sock的程序感到好奇心想这玩意咱就这么强怎么写出来的
于是前几天大搜了一把终于不负有心给我找到了Stevens的中文绝版sock工具源码不敢私藏拿出来给大家
下面是程序的选项菜单

  1. minuit@suse:~> ./sock
  2. 使用: sock [ options ] <host> <port>              (for client; default)
  3.        sock [ options ] -s [ <IPaddr> ] <port>     (for server)
  4.        sock [ options ] -i <host> <port>           (for "source" client)
  5.        sock [ options ] -i -s [ <IPaddr> ] <port>  (for "sink" server)
  6. options: -b n 将n绑定为客户的本地端口号(在默认情况下,系统给客户分配一个临时的端口号).
  7.          -c  将从标准输入读入的新行字符转换为一个回车符和一个换行符,类似地,当从网络中读数据时,将<回车,换行>序列转换为新行字 符。很多因特网应用需要 NVT ASCII,它使用回车和换行来终止每一行.
  8.          -f    a.b.c.d.port为一个UDP端点指明远端的IP地址(a.b.c.d)和远端的端口号(port).
  9.          -h   实现TCP的半关闭机制,当在标准输入中读到一个文件结束符时并不终止.而是在TCP连接上发送一个半关闭报文,继续从网络中 读报文直到对方关闭连接.
  10.          -i   源客户或接收器服务器.向网络写数据(默认),或者如果和-s选项一起用,从网络读数据.-n选项可以指明写(或读)的缓存的数目,-w选项可以指明每次写的大小, -r 选项可以指明每次读的大小.
  11.          -n n  当和-i选项一起使用时,n指明了读或写的缓存的数目.n的默认值是1024.
  12.          -p n  指明每个读或写之间暂停的秒数.这个选项可以和源客户(-i)或接收器服务器(-is)一起使用作为每次对网络读写时的延迟.参考-P选项,实现在第1次读或写之前暂停.
  13.          -q n  为TCP服务器指明挂起的连接队列的大小:TCP将为之进行排队的已经接受的连接的数目.默认值是5.

  14.          -r n  和-is选项一起使用,n指明每次从网络中读数据的大小.默认是每次读1024字节.
  15.          -s    作为一个服务器启动,而不是一个客户.
  16.          -u    使用UDP,而不是TCP.
  17.          -v    详细模式.在标准差错上打印附加的细节信息(如客户和服务器的临时端口号)
  18.          -w n  和-i选项一起使用,n指明每次从网络中写数据的大小.默认值是每次写1024字节.
  19.          -A    SO_REUSEADDR接口选项.对于TCP,这个选项允许进程给自己分配一个处于2MSL等待的连接的端口号.对于UDP,这个选项支持多 播,它允许多个进程使用同一个本地端口来接收广播或多播的数据报.
  20.          -B    SO_BROADCAST接口选项,允许向一个广播IP地址发送UDP数据报.
  21.          -C    设置终端为cbreak模式.
  22.          -D    SO_DEBUG接口选项.这个选项使得内核为这个TCP连接维护另外的调试信息.以后可以运行trpt(8)程序输出这个信息.
  23.          -E    如果实现支持,使能IP_RECVDSTADDR接口选项.这个选项用于UDP服务器,用来打印接收到的UDP数据报的目的IP地址.
  24.          -F    指明一个并发的TCP服务器.即,服务器使用fork函数为每一个客户连接创建一个新的进程.
  25.          -K    SO_KEEPALIVE 接口选项
  26.          -L n  SO_LINGER 选项把一个TCP端点的拖延时间 (linger time)(SO_LINGER)设置为 n.一个为0的拖延时间意味着当网络连接关闭 时,正在排队等着发送的任何数据都被丢弃,向对方发送一个重置报文.一个正的拖延时间(百分之一秒)是关闭网络连接必须等待的将所有 正在排队等着发送的数据发送完并收到确认的时间。关闭网络连接时,如果这个拖延定时器超时,挂起的数据没有全部发送完并收到确认,关闭操作将返回一个差错信息.
  27.          -N    设置TCP_NODELAY接口选项来禁止Nagle算法
  28.          -O n  指明一个TCP服务器在接受第一个客户连接之前暂停的秒数.
  29.          -P n  指明在第一次对网络进行读或写之前暂停的秒数。这个选项可以和接收器服务器(-is)一起使用,完成在接受了客户的连接请 求之后但在执行从网络中第一次读之前的延迟。和接收源(-i)一起使用时,完成连接建立之后但第一次向网络写之前的延迟.参看-p选项,实现 在接下来的每一次读或写之间进行暂停.
  30.          -Q n  指明当一个TCP客户或服务器收到了另一端发来的一个文件结束符,在它关闭自己这一端的连接之前需要暂停的秒数.
  31.          -R n  把接口的接收缓存(SO_RCVBUF接口选项)设置为n.这可以直接影响TCP通告的接收窗口的大小.对于UDP,这个选项指明了可以接收的最大的UDP数据报.
  32.          -S n  把接口的发送缓存(SO_SNDBUF接口选项)设置为n.对于UDP,这个选项指明了可以发送的最大的 UDP数据报.
  33.          -U n  在向网络写了数字n后进入TCP的紧急模式.写一个字节的数据以启动紧急模式.
  34. minuit@suse:~>      
复制代码

sock.tar.gz

13.88 KB, 下载次数: 950

SOCK源码

论坛徽章:
0
2 [报告]
发表于 2006-10-22 18:26 |只看该作者
原帖由 lovesaka 于 2006-10-22 18:24 发表
我从学网络一直以来就对Stevens书中的那个sock的程序感到好奇心想这玩意咱就这么强怎么写出来的
于是前几天大搜了一把终于不负有心给我找到了Stevens的中文绝版sock工具源码不敢私藏拿出来给大家
下面是程序的选 ...


有意思,打字速度好快快,标点都省略了。

给个链接,大家不就都找到了吗……

论坛徽章:
0
3 [报告]
发表于 2006-10-22 18:35 |只看该作者
原帖由 langue 于 2006-10-22 18:26 发表


有意思,打字速度好快快,标点都省略了。

给个链接,大家不就都找到了吗……

f t p . u u . n e t /p u b l i s h e d / b o o k s /

论坛徽章:
0
4 [报告]
发表于 2006-10-22 19:09 |只看该作者
原帖由 lovesaka 于 2006-10-22 18:35 发表

f t p . u u . n e t /p u b l i s h e d / b o o k s /


谢谢。sock 是很有意思。

论坛徽章:
0
5 [报告]
发表于 2006-10-23 09:45 |只看该作者
想问一下,网络编程除了sock,还有什么?
谢谢!

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
6 [报告]
发表于 2006-10-23 11:05 |只看该作者
谢谢LZ了!

论坛徽章:
0
7 [报告]
发表于 2008-09-02 22:18 |只看该作者
很好的东西呀

论坛徽章:
0
8 [报告]
发表于 2008-09-02 22:27 |只看该作者
非法用户[论坛禁止访问三个月]

这是啥?

论坛徽章:
0
9 [报告]
发表于 2008-09-02 23:13 |只看该作者
Stevens懂中文

论坛徽章:
0
10 [报告]
发表于 2008-09-02 23:15 |只看该作者
原帖由 5毛党党员 于 2008-9-2 22:27 发表
非法用户[论坛禁止访问三个月]

这是啥?

自己写的"自我介绍"
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP