如何在linux下使用c语言 利用select和pthread编写可以实现多用户的大文件传输的socket通信程序?

如何在linux下使用c语言 利用select和pthread编写可以实现多用户的大文件传输的socket通信程序?,第1张

你的意思是单独使用select或者单独使用pthread么?

单独使用select的话,就是server的监听socket监听到来自client的请求,那么就会有一个socket句柄,通过使用select来管理多个句柄,而不需要多个线程thread。

单独使用thread的话,就是server监听到socket请求,那么就会创建一个thread来处理文件的传输的事儿。那么这样的话就会有穿多个文件,就会有多个线程出现。

是这样,如果是UDP传输,一般就是1500左右。如果是TCP大小不一定,比如你要传10000,有可能一次传的量是小于10000的任意量。为了解决这个问题,我建议你用阻塞的SOCKET ,TCP传输,用一个循环接收一个大数据包,每次接到多少字节就将内存下表移动多少,在下次循环中继续接受,直到传完一个整包。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8987148.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-23
下一篇2023-04-23

发表评论

登录后才能评论

评论列表(0条)

    保存