详细的可以参考博客(Shine_zy),非常的全面,还有在Linux(Ubuntu版)下编写运行C语言程序的博客主AlfredM写的也非常不错 。
vim+gcc+gdb
vim编辑文本,gcc用以程序编译,gdb用于代码调试
Ctrl+Alt+T打开终端输入sudo apt - get install build-essential
新建文件夹mkdir
更改当前的工作目录cd
执行vi test.c
gcc test.c -o test 和./test编译生成的文件并运行
那么在linux下socket编程实现一个服务器连接多个客户端要怎么实现呢
使用sockt通信一般步骤
-
服务器端:socket()建立套接字,绑定并监听(listen),用accept()等待客户端链接
-
客户端:socket()建立套接字,链接服务器,链接上后用send()和recv(),在套接字上写读数据,直到数据交换完毕,close()关闭套接字
不过在linux当中,我们可以用select函数实现I/O端口的复用,传递给select函数的参数会告诉内核: -
我们所关心的文件描述符
-
对每一个描述符我们所要关心的状态(读或写,或者看是否出现异常)
-
我们要等待多长时间
**有了这些返回信息,我们就可以调用合适的I/O函数并且不会阻塞
**
select函数原型
int select(int maxfds,fd_setreadfds,fd_setwritefds,fd_set*exceptfds,struct timeval *timeout);
select
函数系统调用用来让我们程序监视多个文件句柄的状态变化,程序等待并返回做好准备的文件描述符的个数
更多具体内容见linux下的socket编程实现一个服务器链接多个客户端(Spechar).