![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux与网络通信
文章平均质量分 80
Mr_weng_
这个作者很懒,什么都没留下…
展开
-
Linux与网络通信:基于TCP的网络聊天室
网络聊天室的功能,现在我通过Qt提供的QTcpServer和QtcpSocket实现。TCP是一种可靠的,面向连接,面向数据流的传输协议,适用于高层协议,其中高层协议包括HTTP,FTP,而TCP协议非常适合数据的连续传输。聊天室分为服务器端和客户端,服务器程序可以创建一个聊天室,而客户端程序可以输入登入的用户名,服务器地址以及所使用的端口号码,然后进入聊天室,在聊天室中的每个用户都可以看原创 2013-11-28 16:37:42 · 2551 阅读 · 2 评论 -
Linux网络编程之socket:unix域套接字编程与socketpair函数
一、UNIX Domain Socket IPCsocket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、转载 2014-11-03 20:51:57 · 803 阅读 · 0 评论 -
Linux进程间通信——使用流套接字
前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket进行通信的进程可以是同一台计算机的进程,也是可以是通过网络连接起来的不同计算机上的进程。通常我们使用socket进行网络编程,这里将会简单地讲述如何使用socket进行简单的网络编程。一、什么是socketsocket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开发原创 2014-08-15 09:41:51 · 457 阅读 · 0 评论 -
linux网络编程之套接字:套接字I/O超时设置方法和用select实现超时
一、使用alarm 函数设置超时原创 2014-10-28 19:33:36 · 808 阅读 · 0 评论 -
Linux网络编程之socket:使用select函数实现并发处理
一、当我们使用单进程单连接且使用readline修改后的客户端程序,去连接使用readline修改后的服务器端程序,会出现一个有趣的现象,先来看输出:先运行服务器端,再运行客户端。原创 2014-10-21 19:19:49 · 6448 阅读 · 0 评论 -
Linux网络编程之socket:select函数的并发限制与poll函数
一、用select实现的并发服务器,能达到的并发数,受两方面限制1、一个进程能打开的最大文件描述符限制。这可以通过调整内核参数。可以通过ulimit -n来调整或者使用setrlimit函数设置, 但一个系统所能打开的最大数也是有限的,跟内存大小有关,可以通过cat /proc/sys/fs/file-max 查看2、select中的fd_set集合容量的限制(FD_SETSIZE转载 2014-10-23 13:37:47 · 651 阅读 · 0 评论 -
Linux网络编程之socket:socket与字节序以及地址转换函数
一、什么是socketsocket可以看成是用户进程与内核网络协议栈的编程接口。socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信。转载 2014-09-12 11:25:08 · 695 阅读 · 0 评论 -
Linux网络编程之socket:使用fork并发处理多个client的请求和对等通信P2P
一、在前面讲过的回射客户/服务器程序中,服务器只能处理一个客户端的请求,如何同时服务多个客户端呢?在未讲到select/poll/epoll等高级IO之前,比较老土的办法是使用fork来实现。网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次accept一个新的客户端连接就fork出一个子进程专门服务这个客户端。但是子进程退出时会产生僵尸进程,父进程要注意处理SIGCHLD原创 2014-09-13 18:43:38 · 998 阅读 · 0 评论 -
Linux进程间通信——使用数据报套接字
一、简单回顾——什么是数据报套接字。socket,即套接字是一种通信机制,凭借这种机制,客户/服务器(即要进行通信的进程)系统的开发工作既可以在本地单机上进行,也可以跨网络进行。也就是说它可以让不在同一台计算机但通过网络连接计算机上的进程进行通信。也因为这样,套接字明确地将客户端和服务器区分开来。相对于流套接字,数据报套接字的使用更为简单,它是由类型SOCK_DGRAM指定的,它不原创 2014-08-17 10:22:38 · 569 阅读 · 0 评论 -
Linux网络编程之socket:由一个进程发起多个连接
让一个客户端发起多个连接,然后只利用其中一个连接发送数据。原创 2014-09-21 21:46:08 · 1374 阅读 · 0 评论 -
Linux编程之socket:tcp流协议产生的粘包问题及解决方法
首先说明的是发送端可以是一K一K地发送数据,而接收端的应用程序可以两K两K地提走数据,当然也有可能一次提走3K或6K数据,或者一次只提走几个字节的数据,也就是说,应用程序所看到的数据是一个整体,或说是一个流(stream),一条消息有多少字节对应用程序是不可见的,因此TCP协议是面向流的协议,这也是容易出现粘包问题的原因。而UDP是面向消息的协议,每个UDP段都是一条消息,应用程序必须以消息为单位转载 2014-09-18 17:48:01 · 1483 阅读 · 0 评论 -
Linux网络编程之socket:epoll系列函数简介,与select,poll函数的区别
一、epoll 系列函数简介转载 2014-11-02 12:17:18 · 996 阅读 · 0 评论