多线程并发服务器编程

本文详细介绍了多线程并发服务器编程的实验目的、实验平台、实验内容、实验原理和实验步骤,包括pthread_create、pthread_join等函数的使用,以及多线程与多进程的区别。通过实例展示了如何创建并发服务器程序,能够处理多个客户端请求。
摘要由CSDN通过智能技术生成

多线程并发服务器编程

一、实验目的

理解线程的创建和终止方法;

学会编写基本的多线程并发服务器程序和客户程序;

理解多线程与多进程的区别。

二、实验平台

ubuntu-8.04操作系统

三、实验内容

编写多线程并发服务器程序和客户程序,具体功能如下:

1、服务器等待接收客户的连接请求,一旦连接成功则显示客户地址,接着接收客户端的名称并显示;然后接收来自该客户的字符串,每当收到一个字符串时,显示该字符串,并将字符串按照恺撒密码的加密方式(K=3)进行加密,再将加密后的字符发回客户端;之后,继续等待接收该客户的信息,直到客户关闭连接。要求服务器具有同时处理多个客户请求的能力。

2、客户首先与相应的服务器建立连接;接着接收用户输入的客户端名称,并将其发送给服务器;然后继续接收用户输入的字符串,再将字符串发送给服务器,同时接收服务器发回的加密后的字符串并显示。之后,继续等待用户输入字符串,直到用户输入Ctrl+D,客户关闭连接并退出。

四、实验原理

多进程方式使用fork生成子进程存在一些问题。首先,fork占用大量的资源,内存映像要从父进程拷贝到子进程,所有描述符要在子进程中复制;其次,fork子进程后,需要用进程间通信在父进程和子进程间传递信息,从子进程返回信息给父进程需要做较多的工作。多线程有助于解决以上两个问题。

线程是进程内的独立执行实体和调度单元,又称为轻量级进程(lightwightprocess);创建线程比进程快10~100倍。一个进程内的所有线程共享相同的内存空间、全局变量等信息(这种机制又带来了同步问题)。


1pthread_create()函数

pthread_create()函数用于创建新线程。当一个程序开始运行时,系统产生一个称为初始线程或主线程的单个线程,额外的线程需要由pthread_create()函数创建。

-------------------------------------------------------------------
#include<pthread.h>

intpthread_create(pthread_t *tid, const pthread_attr_t *attr, void*(*func)(void *), void *arg);

返回:成功时为0;出错时非0

-------------------------------------------------------------------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值