第四章 基本tcp 套接口编程注意区分AF_XXX 和PF_XXX,AF代表address family, PF代表protocol family。1 socket 函数2 connect 函数3 bind 函数4 listen 函数注:主动、被动 与 服务器、客户端没有明确的对应关系linux中定...
分类:
其他好文 时间:
2014-08-29 19:45:18
阅读次数:
261
第三章 套接字编程简介每一个 Socket 都用一个半相关描述:{协议,本地地址,本地端口}一个完整的 Socket 则用一个相关描述{协议,本地地址,本地端口,远程地址,远程端口}每一个 Socket 有一个本地的唯一 Socket 号,由操作系统分配。1.struct sockaddr这个结构用...
分类:
其他好文 时间:
2014-08-28 14:37:21
阅读次数:
220
第一章:C/C++语言提供两种不同的编程模式:IPL32和PL64。? IPL32 ● 表示integer/pointer/long三种数据类型是32位(4个字节),在这种模式下,提供32位的地址空间,理论的内存使用限制为4G。? PL64 ● 表示pointer/long两种数据类型是64位(8个...
分类:
其他好文 时间:
2014-08-27 14:31:37
阅读次数:
182
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.程序启动阶段创建一个线程池之后只让主线程调用 accept 并把客户连接传递给池中某个可用线程。
//用于维护关于每个线程基于信息的 Thread 结构
typedef struct {
pthread_t thread_tid; /* 线程 ID */
...
分类:
编程语言 时间:
2014-08-27 13:01:58
阅读次数:
288
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.文件上锁文件系统操作,比较耗时
2.线程上锁,不仅适用于同一进程内各线程之间的上锁,也适用于不同进程之间的上锁。
3.在不同进程之间使用线程上锁要求:
1)互斥锁变量必须存放在由所有进程共享的内存区中
2)必须告知线程函数库这是在不同进程之间共享的互斥锁
/*...
分类:
编程语言 时间:
2014-08-26 13:47:16
阅读次数:
238
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.只让你进程调用 accept,然后把所接受的已连接套接字“传递”给某个子进程。
这样做就不用因为所有子进程都调用 accept 而需提供上锁保护
2.父进程必须跟踪子进程的忙闲状态,以便给空闲子进程传递新的套接字
typedef struct {
pid_t ...
分类:
其他好文 时间:
2014-08-26 13:46:56
阅读次数:
154
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.为每个客户请求创建一个线程,以取代为每个客户派生一个子进程
/* include serv06 */
#include "unpthread.h"
int
main(int argc, char **argv)
{
int listenfd, conn...
分类:
编程语言 时间:
2014-08-26 13:46:46
阅读次数:
276
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.预先创建一个线程池,并让每个线程各自调用 accept
2.用互斥锁取代让每个线程都阻塞在 accept 调用之中的做法
//用于维护关于每个线程基于信息的 Thread 结构
typedef struct {
pthread_t thread_tid; ...
分类:
编程语言 时间:
2014-08-26 13:46:16
阅读次数:
321
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
1.允许多个进程在引用同一个监听套接字的描述符上调用 accept 这种做法并不具备兼容性。
解决的方法是让应用进程在调用 accept 前后安置某种形式的锁(lock),这样任意时刻只有一个子进程
阻塞在 accept 调用中,其他子进程则阻塞在试图获取用于保护 accept...
分类:
其他好文 时间:
2014-08-26 11:36:06
阅读次数:
231
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
下面我会介绍同一个使用 TCP 协议的客户端程序的几个不同版本,分别是停等版本、select 加阻塞式 I/O 版本、
非阻塞式 I/O 版本、fork 版本、线程化版本。它们都由同一个 main 函数调用来实现同一个功能,即回射程序客户端。
它从标准输入读入一行文本,写到服务器上,读...
分类:
其他好文 时间:
2014-08-25 23:00:15
阅读次数:
478