Unix开发,unix基础教程
在第一个实例我们已经编写了客户端程序,本篇编写他的姊妹篇-服务器端程序。
基本上,服务器端程序既是客户端程序的"反"程序!
1.建立窝通信
2.初始化servaddr
2.1 置0
2.2 设置协议族
2.3 设置端口
2.4 设置互联网协议(互联网协议的缩写)地址为本机所有地址/任意地址
3.绑定窝的端口
4.监听窝
以上2.4, 3, 4是为客户端的连接做准备的。
循环执行:
5.接受连接
6.发送数据
7.关闭连接
第二个运行实例!
daytimetcpsrv.c
#包含 ./lib/unp.h
#包含时间。h
#定义监听队列20
int main(int argc,char **argv)
int listenfd,connfd
结构sockaddr _ in servaddr
char buff[MAXLINE];
时间_t滴答;
listenfd=socket(AF_INET,SOCK_STREAM,0);
bzero( servaddr,sizeof(serv addr));
servaddr.sin _ family=AF _ INET
服务器地址。sin _ addr。s _ addr=htonl(在addr _ ANY中);
服务器地址。sin _ port=htons(13);
bind(listenfd,(struct sockaddr *) servaddr,sizeof(servaddr));
listen(listenfd,LISTEN _ QUEUE);
for(;) {
connfd=accept(listenfd,(struct sockaddr *) NULL,NULL);
时间(滴答);
snprintf(buff,sizeof(buff), %sn ,ctime(ticks));
write(connfd,buff,strlen(buff));
关闭(conn FD);
}
编译:
root @肖斌-桌面:/home/肖斌/temp # cc daytimetcpsrv。c-o白天1。在外
运行:
root @肖斌-桌面:/home/肖斌/temp# ./daytime1.out
-结束-
测试:
使用窗子的远程登录来测试我们程序是否运行正常,
在命令提示符中输入:远程登录192.168.101.128 13
(其中192.168.101.128为服务器互联网协议(互联网协议的缩写)地址;13既是上面程序中我们使用的端口号)
如果出现图中红色方框中的内容,既表示服务器端程序运行正常。