unix网络编程之tcp客户端/服务端程序(1)
来源:互联网 发布:原味内衣淘宝 编辑:程序博客网 时间:2024/05/29 11:43
参考资料:《UNIX网络编程 卷1:套接字联网API》
文章:《Linux进程状态(ps stat)之R、S、D、T、Z、X》(转载)
测试环境:虚拟机+Fedora18、win7+SocketTool.exe
服务端程序如下:
#include"unp.h"intmain(int argc, char **argv){intlistenfd, connfd;pid_tchildpid;socklen_tclilen;struct sockaddr_incliaddr, servaddr;listenfd = Socket(AF_INET, SOCK_STREAM, 0);bzero(&servaddr, sizeof(servaddr));servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = htonl(INADDR_ANY);servaddr.sin_port = htons(SERV_PORT);Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));Listen(listenfd, LISTENQ);for ( ; ; ) {clilen = sizeof(cliaddr);connfd = Accept(listenfd, (SA *) &cliaddr, &clilen);if ( (childpid = Fork()) == 0) {/* child process */Close(listenfd);/* close listening socket */str_echo(connfd);/* process the request */exit(0);}Close(connfd);/* parent closes connected socket */}}
#include"unp.h"voidstr_echo(int sockfd){ssize_tn;charbuf[MAXLINE];again:while ( (n = read(sockfd, buf, MAXLINE)) > 0)Writen(sockfd, buf, n);if (n < 0 && errno == EINTR)goto again;else if (n < 0)err_sys("str_echo: read error");}
编译后运行!
这时可使用SocketTool.exe连接上来,端口为9877,ip为fedora的ip地址
用命令查看
#netstat -a
可看到 第一条,服务端正处在监听状态,
查看进程间的关系,可用如下命令:
#ps -t pts/6 -o pid,ppid,tty,stat,args,wchan此处运行出错,因我使用终端不是 tty,故改用如下命令:
#ps -o pid,ppid,tty,stat,args,wchan
Z为僵死进程
为清楚看出父子进程关系,可用如下命令:
#ps -axjf
- unix网络编程之tcp客户端/服务端程序(1)
- UNIX网络编程之简易客户端与服务端
- Unix网络编程学习笔记之第5章 TCP客户端/服务器程序示例
- UNIX网络编程卷1 时间获取程序客户端 TCP 协议相关性
- UNIX网络编程卷1 时间获取程序客户端 TCP 使用非阻塞connect
- 【python】tcp网络程序-客户端/服务端
- unix网络编程之tcp
- UNIX网络编程----TCP客户端和服务器端
- Unix 网络编程 之TCP程序基本框架
- socket 编程之TCP服务端与客户端
- 网络编程之TCP客户端
- unix网络编程 时间服务端和客户端设计
- unix网络编程卷1 时间获取客户端程序
- JAVA--网络编程之服务端和客户端
- UNIX网络编程——TCP回射服务器/客户端程序
- Android网络编程之TCP通信----简单客户端与服务端通信
- 基于TCP的网络编程之服务端和客户端之间的交流
- linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
- 平面几何常用定理、结论总结 第二篇微分几何
- 虚拟机装Linux CentOS-6.4安装与问题
- sqlite
- SAE上几点问题
- 几款实用的下拉菜单
- unix网络编程之tcp客户端/服务端程序(1)
- 黑马程序员--高新技术--可变参数,增强for循环,枚举
- Android 收集已发布程序的崩溃信息
- SRM 222 Div II Level Two: GroceryBagger,STL map 用法
- 数据挖掘的初步认识
- Coding the Matrix作业Python Lab及提交方法
- 简单使用URLConnection、HttpURLConnection和HttpClient访问网络资源
- 新博客开通了
- 鸟哥的Linux私房菜(基础篇) 读书笔记