![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
socket网络编程
TBG2017
这个作者很懒,什么都没留下…
展开
-
linux 下socket 服务器和客户端异步通信
我们知道用socket进行通信时,发送数据和接收数据所使用的recv/send函数会阻塞进程,只有收到或发送数据后才能返回值,导致是socket通信只能实现服务器和客户端交替收发数据,而使用select可以很好地解决这个问题。诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件原创 2017-06-23 22:25:33 · 3845 阅读 · 0 评论 -
linux下用多线程实现socket服务器和客户端的异步通信
前面介绍了用select函数来实现socket的异步收发数据,但是select函数也有一些缺陷,要使socket能持续地通信,select必须不停地检测,这样进程就会一直阻塞在这里,限制了功能的扩展,这里我们用多线程的方式,另创建两个线程用来发送/接收数据,即可解决这个问题,代码如下: 服务器 server.c #include <stdio.h> #include <std转载 2017-06-23 23:00:30 · 5063 阅读 · 2 评论 -
linux socket的多线程编成来实现多个客户端的连接
在socket的网络编程中常常采用多线程的方法来进行与多个客户端的通信,使服务器与多个客户端的通信并发、并行地进行。相比于多进程,多线程的好处是共用一块内存空间,下面我们来看一个简单的例子,就是多个客户端将字符串发送给服务器,服务器再将字符串反转后回复给客户端 服务器 server.c #include <stdio.h> #include <string.h>原创 2017-06-24 12:00:39 · 13936 阅读 · 3 评论 -
linux下 基于libmad的socket多用户mp3音频在线播放服务器
在众多大神的帮助下,这个在线播放流媒体服务器终于完成啦。。。。 这个mp3流媒体服务器设计的思路是,服务器程序server用多线程实现和多个客户端的通信(这是必然的),然后发送给客户端当前的音频列表公客户端选择,之后根据k客户端的选择给多个客户端传输相应mp3文件的数据,同时,客户端进行实时地音频解码并播放。 关于libmad开源mp3音频解码库的使用,见上一篇博客吧。。。。 在服务器程序这一原创 2017-06-24 23:55:14 · 1292 阅读 · 0 评论 -
linux下 socket的多人聊天室
用socket实现一个多人聊天室的思路很简单,即在服务器端定义一个fd的int型数组,用来存储已经连接的客户端的socket连接套接字fd(因为发送和接收数据都只需要借助连接套接字fd),当服务器接收到来自某一客户端的数据时,直接转发给其他所有连接着的客户端,即完成了多人聊天室。 服务器端:多线程进行数据的转发 客户端:创建一个线程专门用来接收数据,主线程进行输入数据等操作 下面直接贴代码:原创 2017-06-25 00:15:14 · 10375 阅读 · 6 评论