[转帖]Unix网络编程—基于TCP套接字编程 ._VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3787 | 回复: 0   主题: [转帖]Unix网络编程—基于TCP套接字编程 .        下一篇 
q563725885
注册用户
等级:少校
经验:1134
发帖:98
精华:1
注册:2013-5-7
状态:离线
发送短消息息给q563725885 加好友    发送短消息息给q563725885 发消息
发表于: IP:您无权察看 2013-5-7 18:12:24 | [全部帖] [楼主帖] 楼主

第三章、基于TCP套接字编程

概述:

北京联动北方科技有限公司

1、socket函数

int socket(int family, int type, int protocol);


成功时返回非负整数值,与文件描述符类似。简称套接字描述符sockfd

2、connect函数

int connect(int sockfd, const struct sockaddr *servaddr, socklen_t addrlen);


套接字地址结构包含服务器的IP地址和端口

3、bind函数

int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen);


赋予本地协议地址一个套接字

IPv4通配地址由常值INADDR_ANY指定

4、listen函数

int listen(int sockfd, int backlog);


把一个未连接的套接字转换成一个被动套接字,接受指向该套接字的连接请求

backlog指相应套接字排队的最大连接个数

5、accept函数

int accept(int sockfd,  struct sockaddr *cliaddr, socklen_t addrlen);


第二、三参数用来返回已连接的客户的协议地址

addrlen是值-结果参数:调用前,告诉内核结构的大小,不至于越界;返回时,告诉内核该结构实际存放的字节数

成功时返回一个已连接套接字,函数第一个参数为监听套接字

6、fork和exec函数

pid_t fork(void);


调用一次,返回两次。父进程返回子进程ID号,子进程返回0

两个典型用法:

①一个进程创建自身的副本,每个副本可以同时处理各自操作。例:网络服务器

②首先创建自身的副本,然后副本调用exec把自身替换成新的程序。例:shell

7、并发服务器

1)当一个连接建立时,accept返回

2)服务器调用fork,然后子进程服务客户(通过已连接套接字connfd)

3)父进程等待另一个连接(通过监听套接字listenfd)

4)父进程关闭已连接套接字,子进程关闭监听套接字

注:每个套接字都有一个引用计数

北京联动北方科技有限公司

北京联动北方科技有限公司

8、close函数

int close(int sockfd);


关闭套接字,返回到调用进程

9、getsockname和getpeername函数

返回与套接字关联的本地协议地址或外地协议地址

转自:

 http://blog.csdn.net/health747474/article/details/8890240




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论