1 / 12
文档名称:

用Perl语言进行Socket编程.doc

格式:doc   大小:36KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用Perl语言进行Socket编程.doc

上传人:1314042**** 2021/2/23 文件大小:36 KB

下载得到文件列表

用Perl语言进行Socket编程.doc

相关文档

文档介绍

文档介绍:网络编程是一门神秘且复杂的艺术,当然也十分有趣。Perl语言提供了丰富的TCP/IP网络函数,所有这些函数都直接来源于C语言的socket库函数
由于Perl语言和C语言的socket库函数在型式和使用方法上都是一样的,因此会使用Perl语言进行Socket编程, 当然也就会使用C语言进行Socket编程
下面是Perl语言中有关的socket库函数列表:
一。函数原型 使用说明
socket()
socket()系统调用为客户机或服务器创建一个套接字,套接字函数在如下定义:
#include<sys/typesh>
#include<sys/socketh>
int socket(int family, int type, int protocol)
在Linux中family=AF_UNIXtype可以是SOCK_STREAM它是可靠的虽然通讯速度
较慢,也可以是SOCK_DGRAM它通讯速度较快但不可靠如果type=SOCK_STREAM那么protocol=IPPROTO_TCP如果type=SOCK_DGRAM那么protocol=IPPROTO_UDP
如果出错,函数将返回-1否则返回一个套接字描述符你可以在程序后面的调用
中通过套接字描述符使用这个套接字
套接字创建时没有指定名字客户机用套接字的名字读写它这就是如下绑定函
数所要做之事
listen()
listen()系统调用被服务器所使用下面有它的定义:
#include<sys/typesh>
#include<sys/socketh>
int listen(int sockfd, int backlog);
sockfd是套接字描述符backlog是在一时间内尚未被决定是否拒绝的连接的号
码一般使用标准值5如发生错误则返回值小于1
如果这个调用成功,你就已经可以接受连接了
setsockopt()和getsockopt()
Linux所提供的socket库含有一个错误(bug)此错误表现为你不能为一个套接
字重新启用同一个端口号,即使在你正常关闭该套接字以后例如,比方说,你编写一个服务
器在一个套接字上等待的程序服务器打开套接字并在其上侦听是没有问题的无论如何,总
有一些原因(不管是正常还是非正常的结束程序)使你的程序需要重新启动然而重启动后你
就不能把它绑定在原来那个端口上了从bind()系统调用返回的错误代码总是报告说你试图
连接的端口已经被别的进程所绑定
问题就是Linux内核在一个绑定套接字的进程结束后从不把端口标记为未用在
大多数UNIX系统中,端口可以被一个进程重复使用,甚至可以被其它进程使用
在Linux中绕开这个问题的办法是,但套接字已经打开但尚未有连接的时候用s
etsockopt()系统调用在其上设定选项(options)setsockopt()调用设置选项而getsockopt
()从给定的套接字取得选项
这里是这些调用的语法:
#include<sys/typesh>
#include<sys/socketh>
int getsockopt(int sockfd, int level, int name, char *value, int *optlen)
int setsockopt(int sockfd, int level, int name, char *value, int *optlen)
sockfd必须是一个已打开的套接字level是函数所使用的协议标准(protocol level)(TCP/IP协议使用IPPROTO_TCP,套接字标准的选项实用SOL_SOCKET),选项的名称(name)在套接字说明书中(man page)有详细说明*value指向为getsockopt()函数所获取的值或setsockopt()函数所设置的值的地址optlen指针指向一个整数,该整数包含参数以字节计算的长度
其值被getsockopt()设置且其值必须被程序员设定当使用一个经由setsockopt()
选项的所有细节可以在使用手册中setsockopt的第二节(setsockopt(2))找到
现在我们再回到Linux的错误上来当你打开一个套接字时必须同时用下面的代
码段来调用setsockopt()函数:
#ifdef LINUX
opt = 1; len = sizeof(opt);
setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&opt,&len);

最近更新

2024年吉林省长春市行政职业能力测验题库全面.. 148页

脑卒中救治网络对院前急救水平的影响评估与优.. 25页

2024年安顺职业技术学院单招职业适应性测试题.. 56页

脑卒中初期症状的紧急处理护住患者生命最重要.. 25页

2024年广西百色市那坡县地震局招聘1人历年高频.. 89页

2024年广西省玉林市住房公积金管理中心招聘10.. 90页

2024年广西贵港桂平市人才市场招聘历年高频难.. 89页

2024年广西钦州市钦北区事业单位招聘53人历年.. 92页

2024年汉中职业技术学院单招职业适应性测试题.. 58页

2024年江苏省盐城市行政职业能力测验题库及参.. 146页

2024年江西省南昌市行政职业能力测验题库(必.. 147页

2024年石家庄科技信息职业学院单招职业适应性.. 57页

2024年辽宁省朝阳市行政职业能力测验题库可打.. 148页

2024年辽宁省阜新市行政职业能力测验题库含答.. 148页

2024年长春职业技术学院单招职业适应性测试题.. 58页

2024年黑龙江省双鸭山市行政职业能力测验题库.. 149页

公共基础知识云南省玉溪市选调生考试(行政职.. 149页

公共基础知识山东省东营市选调生考试(行政职.. 148页

公共基础知识湖北省鄂州市选调生考试(行政职.. 148页

公共基础知识贵州省毕节地区选调生考试(行政.. 148页

公共基础知识陕西省咸阳市选调生考试(行政职.. 148页

吉林省松原市事业单位招聘考试(职业能力倾向.. 148页

安徽省黄山市事业单位招聘考试(职业能力倾向.. 148页

山东省淄博市事业单位招聘考试(职业能力倾向.. 148页

广东省汕头市选调生考试(行政职业能力测验).. 147页

人工智能在仿真中的应用 31页

辍学生家访情况记录表 3页

GB17167-2022用能单位能源计量器具配备标准(d.. 13页

《英语词汇速记大全2——词形记忆法-俞敏洪[6.. 51页

EDI课件 22页