33,UC(12)
来源:互联网 发布:长虹b2b软件下载 编辑:程序博客网 时间:2024/05/03 18:18
回顾:
信号量集 - semaphore arrays
1 key = ftok(); 2 semid = semget();
3 semctl(semid,0,SETVAL,10);
信号量集 就可以使用。
4 semop() 实现+1 或 -1.
5 semctl()删除
计数器组成的数组
网络编程(socket编程)
服务端
1 socket() -> sockfd
2 准备通信地址 sockaddr sockaddr_un sockaddr_in
3 绑定 bind()
4 读写sockfd,实现信息交互
5 close(sockfd);
客户端
第三步换 connect()函数,用法和bind()没有区别。其它一样。
今天:
socket本地通信,实用性不如消息队列。
socket网络通信和本地通信代码差不多,唯一区别在于通信地址的不同。
网络通信时,端口和IP地址都需要使用转换函数:
端口转换函数: htons() 本地 转 网络
IP地址转换函数: int inet_addr(char*) 点分 转 十六
一对多的通信
TCP的一对多通信
服务器端:
1 socket()得到socket描述符,参数type必须SOCK_STREAM
2 准备通信地址,端口和IP 需要使用转换函数
3 绑定 bind()
4 用listen()函数 监听客户端
5 用accept()函数,等待客户端的连接,如果没有连接,阻塞,如果有客户端连接,返回一个 新的socket描述符,用于读写数据。
6 读写数据read()/write()
7 关闭对应的socket
客户端
与一对一的完全一样。
memset() 函数可以清空 buf.
练习:
修改tcpserver2.c和tcpclient.c,实现:
客户端加上输入(scanf),要求能多次输入,输入bye退出
客户端输入一句,发送给服务器一句。
服务器能多次接受同一客户端的数据,并且把客户端发过来的数据 发回给客户端。
思路: while(1) { 数据交互 ; 遇到bye break;}
如何提示写代码能力:
1 尽量实现:不看任何的代码写出当天代码。
2 在当天的代码上能自由的分段(功能模块)。
3 找一些能实现的课外的代码(新的)。
TCP编程的经验:
1 固定的套路,服务器7步,客户端5步。
2 服务器停在 accept(),直到有客户端连接。
3 服务器和客户端 要同时考虑。
UDP编程:
TCP 和 UDP 协议的区别
TCP 是 有连接协议,在客户端和服务器通信过程中,一直保持连接。数据交互以 数据流的方式(SOCK_STREAM)进行。可以重发一切错误数据。
UDP 是 无连接协议,在客户端和服务器通信过程中,不保持连接。数据交互以 数据报的方式(SOCK_DGRAM)进行。不会重发任何错误数据。
UDP效率较高,但不保证数据的完整和正确。
TCP效率低,但 保证数据的完整和正确。
UDP的发送和接收有特定的函数:
sendto() /recvfrom()
练习:
实现 客户端可以多次输入,并把输入发给服务器,输入bye退出。
服务端 多次接收数据,并把数据回发,用ctl+c退出。
- 33,UC(12)
- UC
- UC
- UC故事 2010-12-04
- UC故事 2010-12-17
- UC杂记 05/12/2011
- UC故事2011/12/01
- UC故事 2011/12/2
- UC故事2011/12/06
- UC故事 2011/12/10 setup env
- UC故事2011/12/20 重温旧梦
- uc第12天线程编程
- UC故事 Server 2012/04/12
- UC故事 2011/12/12 新的征程
- UC故事2011/12/03 - 1 线程相关的东东
- UC故事2011/12/03 - 2 总结与规划
- UC故事2011/12/04 总结与规划 (续)
- UC故事2011/12/16 build linux servers
- 2013-BIT程序设计 12.编程珠玑 -- dp
- Ubuntu搭建Eclipse+JDK+SDK的Android
- 重装win7后启动菜单找不到ubuntu选项需要重新引导
- 32,UC(11)
- 三个水杯 NYOJ BFS
- 33,UC(12)
- Android Parcelable
- 算法转载
- 清除代码异味
- 使用Vibe算法分割前景片段
- Android实现计时与倒计时的几种方法
- centos下查看系统的各种大小限制
- Android context(Application/Activity)与内存泄露
- 判断计算机字节序