Linux网络编程基础实验

实验二Linux网络编程基础实验(4学时)一、实验目的了解TCP/IP协议通信的基本原理;掌握Socket网络通信应用程序接口;掌握TCP、UDP简单网络程序(服务器端和客户端)的编程方法;理解I/O复用模型。

二、实验内容UDP客户端程序设计;TCP客户端程序设计;简易Web服务器程序设计。

三、预备知识Linux操作系统应用、C 语言程序设计四、实验设备及工具硬件:PC机1台。

软件:虚拟机Linux,Gcc,VIM。

五、实验原理程序进行网络通信时,是通过IP 地址和套接字来访问一个主机的。

1.IP 地址IP 地址的作用是标识计算机的网卡地址,每一台计算机都有一个IP 地址。

在程序中是通过IP 地址来访问一台计算机的。

IP 地址是32 位长度的二进制数值,存储空间是4 个字节。

例如1100000010101000 00000001 00000110 是一台计算机的IP 地址。

IP 地址可以使用点分十进制来表示,192.168.1.1。

2.端口所谓端口,是指计算机中为了标识在计算机中访问网络的不同程序而设的编号。

端口号是一个16 位的无符号整数,对应的十进制取值范围是0~65535。

3.TCP 与UDPTCP 与UDP 是两种不同的网络传输方式。

两个不同计算机中的程序,使用IP 地址和端口,要使用一种约定的方法进行数据传输。

TCP 与UDP 就是网络中的两种数据传输约定,主要的区别是进行数据传输时是否进行连接。

TCP:TCP 是一种面向连接的网络传输方式。

这种方式是可靠的,缺点是传输过程复杂,需要占用较多的网络资源。

UDP:UDP 是一种不面向连接的传输方式。

对传输可靠性要求不高时,可以选择使用这种传输方式。

4.套接字区分不同应用程序进程间的网络通信和连接,主要使用3 个参数。

通信的目的IP 地址、使用的传输层协议(TCP 或UDP )和使用的端口号。

在编程时,就是使用这三个参数来构成一个套接字。

这个套接字相当于一个接口,可以进行不同计算机程序的信息传输。

套接字相关的数据类型:sockaddr 用来保存一个套接字,定义方法如下所示。

struct sockaddr{//指定通信的地址类型。

如果是TCP/IP 通信,则该值为AF_INET。

unsigned short int sa_family;//最多使用14 个字符长度,用来保存IP 地址和端口信息。

char sa_data[14];};socketaddr_in为了方便初始化端口号、IP地址等信息。

struct socketaddr_in{unsigned short int sin_family;uint16_t sin_port; //套接字使用的端口号struct in_addr sin_addr; //需要访问的IP 地址unsigned char sin_zero[8]; //未使用的字段,填充为0 };套接字类型指的是在网络通信中不同的数据传输方式。

例如UDP 和TCP 就是两种不同的套接字类型。

常用的套接字类型有面3 种:流套接字(SOCK_STREAM)、数据报套接字(SOCK_DGRAM)、原始套接字(SOCK_RAW)。

5. 重要的Socket API(1)socket(建立一个socket通信)相关函数 accept,bind,connect,listen表头文件 #include<sys/types.h>#include<sys/socket.h>定义函数 int socket(int domain,int type,int protocol);函数说明 socket()用来建立一个新的socket,也就是向系统注册,通知系统建立一通信端口。

参数domain 指定使用何种的地址类型,完整的定义在/usr/include/bits/socket.h 内,底下是常见的协议:PF_UNIX/PF_LOCAL/AF_UNIX/AF_LOCAL UNIX 进程通信协议PF_INET?AF_INET Ipv4网络协议PF_INET6/AF_INET6 Ipv6 网络协议PF_IPX/AF_IPX IPX-Novell协议PF_NETLINK/AF_NETLINK 核心用户接口装置PF_X25/AF_X25 ITU-T X.25/ISO-8208 协议PF_AX25/AF_AX25 业余无线AX.25协议PF_ATMPVC/AF_ATMPVC 存取原始ATM PVCsPF_APPLETALK/AF_APPLETALK appletalk(DDP)协议PF_PACKET/AF_PACKET 初级封包接口参数 type有下列几种数值:SOCK_STREAM 提供双向连续且可信赖的数据流,即TCP。

支持OOB 机制,在所有数据传送前必须使用connect()来建立连线状态。

SOCK_DGRAM 使用不连续不可信赖的数据包连接SOCK_SEQPACKET 提供连续可信赖的数据包连接SOCK_RAW 提供原始网络协议存取SOCK_RDM 提供可信赖的数据包连接SOCK_PACKET 提供和网络驱动程序直接通信。

protocol用来指定socket所使用的传输协议编号,通常此参考不用管它,设为0即可。

返回值成功则返回socket处理代码,失败返回-1。

错误代码 EPROTONOSUPPORT 参数domain指定的类型不支持参数type或protocol指定的协议ENFILE 核心内存不足,无法建立新的socket结构EMFILE 进程文件表溢出,无法再建立新的socketEACCESS 权限不足,无法建立type或protocol指定的协议ENOBUFS/ENOMEM 内存不足EINVAL 参数domain/type/protocol不合法(2)bind(绑定socket)相关函数 socket,accept,connect,listen表头文件 #include<sys/types.h>#include<sys/socket.h>定义函数 int bind(int sockfd,struct sockaddr * my_addr,int addrlen);函数说明 bind()用来设置给参数sockfd的socket一个名称。

此名称由参数my_addr指向一sockaddr结构,对于不同的socket domain定义了一个通用的数据结构struct sockaddr{unsigned short int sa_family;char sa_data[14];};sa_family 为调用socket()时的domain参数,即AF_xxxx值。

sa_data 最多使用14个字符长度。

此sockaddr结构会因使用不同的socket domain而有不同结构定义,例如使用AF_INET domain,其socketaddr结构定义便为struct socketaddr_in{unsigned short int sin_family;uint16_t sin_port;struct in_addr sin_addr;unsigned char sin_zero[8];};struct in_addr{uint32_t s_addr;};sin_family 即为sa_familysin_port 为使用的port编号sin_addr.s_addr 为IP 地址sin_zero 未使用。

参数 addrlen为sockaddr的结构长度。

返回值成功则返回0,失败返回-1,错误原因存于errno中。

错误代码 EBADF 参数sockfd 非合法socket处理代码。

EACCESS 权限不足ENOTSOCK 参数sockfd为一文件描述词,非socket。

(3)listen(等待连接)相关函数 socket,bind,accept,connect表头文件 #include<sys/socket.h>定义函数 int listen(int s,int backlog);函数说明 listen()用来等待参数s 的socket连线。

参数backlog指定同时能处理的最大连接要求,如果连接数目达此上限则client端将收到ECONNREFUSED的错误。

Listen()并未开始接收连线,只是设置socket为listen模式,真正接收client端连线的是accept()。

通常listen()会在socket(),bind()之后调用,接着才调用accept()。

返回值成功则返回0,失败返回-1,错误原因存于errno附加说明 listen()只适用SOCK_STREAM或SOCK_SEQPACKET的socket类型。

如果socket 为AF_INET则参数backlog 最大值可设至128。

错误代码 EBADF 参数sockfd非合法socket处理代码EACCESS 权限不足EOPNOTSUPP 指定的socket并未支援listen模式。

(4)connect(建立socket连接)相关函数 socket,bind,listen表头文件 #include<sys/types.h>#include<sys/socket.h>定义函数 int connect (int sockfd,struct sockaddr * serv_addr,int addrlen);函数说明 connect()用来将参数sockfd 的socket 连至参数serv_addr 指定的网络地址。

结构sockaddr请参考bind()。

参数addrlen为sockaddr的结构长度。

返回值成功则返回0,失败返回-1,错误原因存于errno中。

错误代码 EBADF 参数sockfd 非合法socket处理代码EFAULT 参数serv_addr指针指向无法存取的内存空间ENOTSOCK 参数sockfd为一文件描述词,非socket。

EISCONN 参数sockfd的socket已是连线状态ECONNREFUSED 连线要求被server端拒绝。

ETIMEDOUT 企图连线的操作超过限定时间仍未有响应。

ENETUNREACH 无法传送数据包至指定的主机。

EAFNOSUPPORT sockaddr结构的sa_family不正确。

EALREADY socket为不可阻断且先前的连线操作还未完成。

(5)accept(接受socket连线)相关函数 socket,bind,listen,connect表头文件 #include<sys/types.h>#include<sys/socket.h>定义函数 int accept(int s,struct sockaddr * addr,int * addrlen);函数说明 accept()用来接受参数s的socket连线。

合集下载

linux网络基础实验报告

linux网络基础实验报告

linux网络基础实验报告Linux 网络基础实验报告一、实验目的本次实验的主要目的是深入了解和掌握 Linux 系统中的网络基础知识,包括网络配置、网络服务的搭建与管理、网络故障排查等方面,通过实际操作和实验,提高对 Linux 网络的理解和应用能力。

二、实验环境1、操作系统:Ubuntu 2004 LTS2、实验工具:终端命令行三、实验内容与步骤(一)网络配置1、查看网络接口信息使用`ifconfig` 命令可以查看当前系统的网络接口信息,包括 IP 地址、子网掩码、MAC 地址等。

```ifconfig```2、配置静态 IP 地址编辑`/etc/network/interfaces` 文件,添加以下内容来配置静态 IP 地址:```auto eth0iface eth0 inet staticaddress 1921681100netmask 2552552550gateway 19216811```保存文件后,使用以下命令使配置生效:```sudo /etc/initd/networking restart```(二)网络服务搭建1、 SSH 服务安装 SSH 服务:```sudo aptget install opensshserver```修改配置文件`/etc/ssh/sshd_config` 来配置 SSH 服务的相关参数,如端口号、允许登录的用户等。

启动 SSH 服务:```sudo systemctl start ssh```2、 HTTP 服务安装 Apache 服务器:```sudo aptget install apache2```在`/var/www/html` 目录下创建测试网页,例如`indexhtml` ,即可通过浏览器访问服务器的 IP 地址来查看网页。

(三)网络故障排查1、无法连接网络首先检查网络接口是否正常启用,使用`ifconfig` 查看。

然后检查IP 地址、子网掩码、网关等配置是否正确。

LINUX基础实验

LINUX基础实验

LINUX基础实验实验一LINU某基础实验(一)【实验目的】【实验要求】根据内容进行操作,记录实验结果,写出实验报告。

【实验内容】1.对命令行基本操作进行了解,具体步骤如下:(1)通过GNOME的终端仿真器熟悉命令行操作;(2)通过组合键CTRL+ALT+F1切换到终端TTY1,进行操作;(3)使用智能补全、历史记录等功能;(4)使用man、info查看cat、head、tail等命令的联机帮助。

2.文件与目录基本操作命令(1)用root帐号登录到终端,使用pwd命令查看当前目录;(2)使用cd命令将当前目录切换到/目录下;(3)使用l命令查看Linu某的目录结构,了解各个目录存放与系统相关的文件;(4)使用cat、more、head、tail等命令显示/etc/inittab文件内容;(5)使用grep命令在/etc/inittab文件中查询“initdefault”字符串;(6)使用find和locate命令查找/目录下所有以main开头的文件,并显示这些文件的内容;(7)用cp命令将/etc目录下的inittab文件和拷贝到/root目录下;(8)使用ort或uniq命令对/root目录下的inittab文件排序后输出其结果;(9)统计inittab文件的字节数、行数、字数;(10)用mkdir命令在/root目录下创建一个tet目录;(11)用cp命令将/etc目录及其下所有内容复制到tet目录下;(12)使用cd和l查看/root/tet/etc下的内容;(13)将tet目录改名为tet2;(14)删除tet2目录。

【实验重点】1.熟悉命令行环境;2.路径(包括绝对路径、相对路径)的表示;3.掌握各种文件目录操作命令,熟悉常用的命令选项。

实验报告linux编程

实验报告linux编程

实验报告linux编程实验报告:Linux编程引言:Linux操作系统是一种开源的操作系统,具有高度的灵活性和可定制性。

在本次实验中,我们将探索Linux编程的基本概念和技术。

通过编写简单的程序,我们将了解Linux系统的工作原理以及如何利用其强大的功能来开发应用程序。

一、Linux操作系统简介Linux操作系统是一种基于Unix的开源操作系统,它由许多不同的组件组成,包括内核、命令行工具和图形界面等。

Linux操作系统具有许多优势,如稳定性、安全性和可扩展性。

它广泛用于服务器、嵌入式设备和个人电脑等领域。

二、Linux编程环境搭建1. 安装Linux操作系统:选择适合自己的Linux发行版,如Ubuntu、Fedora等,并按照官方指南进行安装。

2. 安装开发工具:在Linux系统上进行编程需要安装一些开发工具,如GCC编译器、GNU调试器(GDB)等。

三、Linux编程基础1. Shell脚本编程:Shell是Linux系统的命令行解释器,通过编写Shell脚本可以实现自动化任务和批处理任务。

Shell脚本使用一些特定的语法和命令来执行任务。

2. C语言编程:C语言是Linux系统中最常用的编程语言之一,通过编写C程序可以实现更高级的功能。

C语言提供了丰富的库函数和系统调用,可以与Linux系统进行交互。

四、Linux系统编程1. 进程管理:Linux系统是一个多进程的操作系统,通过编写程序可以创建、管理和控制进程。

可以使用fork()和exec()等系统调用来创建新进程,使用wait()和kill()等系统调用来管理进程。

2. 文件操作:Linux系统中的文件操作是非常重要的一部分,通过编写程序可以实现文件的读取、写入和修改等功能。

可以使用open()、read()和write()等系统调用来进行文件操作。

3. 网络编程:Linux系统支持网络编程,通过编写程序可以实现网络通信的功能。

可以使用socket()和bind()等系统调用来创建和管理网络套接字。

LINUX基本网络配置实验过程详解

LINUX基本网络配置实验过程详解

第一章 LINUX基本网络配置实验:通过命令和配置文件修改网络参数,并检查路由和网络的连通性任务一:通过netconfig修改网络参数(局域网的网络是192.168.168.0/24,主机IP为192.168.168.*(*代表2——254之间任意数字),网关为192.168.168.9,DNS服务器为:202.96.134.133(这是中国电信提供的域名服务器地址),配置完成后检测其连通性具体步骤如下:使用NETWORK命令重新启动网络,使网络设置生效,如下图使用不带参数的ifconfig命令查看刚才配置网络设备信息,如下图用PING命令测试主机与网关是否通畅,如下图使用PING命令检测与外部主机是否能够通信,如下图:到此设置完毕,该LINUX主机已经可以与其他主机通过网络进行通信。

任务二:通过网卡配置文件修改网络参数(通过修改/etc/sysconfig/networking/devices/ifcfg-eth0和/etc/resolv.conf文件来修改网络设置,建立如下网络环境的LINUX主机):局域网的网络是1主机IP为192.168.168.*(*代表2——具体实验步骤如下:修改保存退出。

使用NETWORKF命令重新启动网络,以使最新设置被LINUX内核运行采用,显示如下图利用IFCONFIG命令查看修改后的网络设备信息,可以看到网络接口已经被配置成新的信息,如下图修改DNS信息,用VI打开/etc/resolv.conf文件准备编辑,如下:保存退出后使用PING命令检测是否可以和网关机器连接,成功,如下图进一步使用PING命令PING外部域名,检测DNS解析是否正常,显示正常,如下图:任务三:查看本地路由路径(主要通过route命令查看刚才我们在网络设置中的路由信息及内核的路由缓冲表)用无参数的route命令看本地路由表,如下图使用route命令的C参数查看当前系统的路由缓冲表,如下图:添加路由信息,如下图使用ROUTE查看路由表可以看到新建的路由信息任务四:使用traceroute命令查看本地路由路径使用traceroute查看到本地目标主机的路由信息,如下图实验到此结束!。

Linux系统编程实验七:网络编程

Linux系统编程实验七:网络编程

实验七:网络编程●实验目的:学会Linux的socket套接字网络编程,熟悉使用TCP传输协议的网络编程流程●实验要求:编写使用TCP协议的服务器程序和客户端程序,客户端向服务器发送字符串,服务器打印收到的字符串●实验器材:软件:安装了Linux的vmware虚拟机硬件:PC机一台●实验步骤:3、编译并运行应用程序先运行服务器程序tcp_server,然后在另一个终端中运行客户端程序tcp_client。

从运行情况可以看出,在没有客户端连接上来时服务器程序阻塞在accept函数上,等待连接,当有客户端程序连接上来时,阻塞在read函数上,等待读取消息。

客户端发送一条消息后结束,服务器读取消息并打印出来,继续等待新的连接上机报告要求:上面的TCP服务器每次只能处理一次客户端请求,尝试将他改写成并发TCP服务器,即可以处理多个客户端请求,测试成功后将代码写入实验报告。

/***********************************************************#include<sys/socket.h>int scoket(int domain,int type,int protocol)socket函数对应于普通文件的打开操作。

普通文件的打开操作返回一个文件描述字,而socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket。

这个socket 描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来进行一些读写操作。

正如可以给fopen的传入不同参数值,以打开不同的文件。

创建socket的时候,也可以指定不同的参数创建不同的socket描述符,socket函数的三个参数分别为:domain:即协议域,又称为协议族(family)。

常用的协议族有,AF_INET (IPv4 英特网域)、AF_INET6 (IPv6英特网域)、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。

linux操作基础实验报告

linux操作基础实验报告

linux操作基础实验报告Linux 操作基础实验报告一、实验目的本次实验的主要目的是让学生熟悉和掌握 Linux 操作系统的基本操作,包括文件和目录管理、用户和权限管理、进程管理以及网络配置等方面,为今后更深入地学习和使用 Linux 系统打下坚实的基础。

二、实验环境本次实验使用的操作系统是 Ubuntu 2004 LTS ,实验在虚拟机中进行,虚拟机软件为 VMware Workstation Pro 16 。

三、实验内容及步骤(一)文件和目录管理1、登录到 Linux 系统后,首先使用`pwd` 命令查看当前工作目录。

2、使用`ls` 命令查看当前目录下的文件和子目录。

3、使用`mkdir` 命令创建一个新的目录,例如`myfolder` 。

4、使用`cd` 命令进入新创建的目录。

5、在新目录中,使用`touch` 命令创建一个新的空文件,例如`myfiletxt` 。

6、使用`vi` 或`nano` 命令编辑该文件,输入一些文本内容并保存。

7、使用`cat` 命令查看文件的内容。

8、使用`cp` 命令将该文件复制到其他目录。

9、使用`mv` 命令将文件移动到其他位置。

10、使用`rm` 命令删除文件和目录,注意使用`r` 选项递归删除非空目录。

(二)用户和权限管理1、使用`sudo adduser` 命令创建一个新用户,例如`newuser` 。

2、使用`sudo passwd newuser` 命令为新用户设置密码。

3、切换到新用户登录,查看当前用户信息,使用`whoami` 和`id` 命令。

4、回到 root 用户,使用`chmod` 命令修改文件或目录的权限,例如给一个文件设置读写执行权限。

5、使用`chown` 命令修改文件或目录的所有者和所属组。

(三)进程管理1、使用`ps` 命令查看当前系统中的进程信息。

2、使用`top` 命令动态查看系统的资源使用情况和进程状态。

3、使用`kill` 命令结束一个指定的进程,需要知道进程的 PID 。

网络编程 实验报告

一、实验题目与要求1.实验题目:Linux客户/服务器编程2.实验要求:2.1熟悉Linux编程环境;2.2在Linux下编程运行客户/服务器程序2.3编写简单的聊天程序。

二、实验过程设计思想及运行环境开发环境:本系统是在Linux环境下用C语言结合网络编程知识运行环境:虚拟机:Vmware操作系统:Ubuntu-11.10-desktop1.熟悉Linux编程环境a)用vi编辑一个简单的c程序,1.cb)用gcc 编译:#gcc –o hello 1.cc)运行#./hellod)调试编程中的问题。

把问题记录下来,并说明怎样解决的和怎样找到答案的。

2.在Linux下编程运行客户/服务器程序代码压缩文件:unpv13e.tar.gza)解压#tar zxvf unpv13e.tar.gzb)进入解压后的目录#cd unpv13ec)读readme文件d)编译./configuratecd libmakecd ../tcpcliservmakee)运行服务器# tcpcliserv/tcpsrv01f)在另一个终端运行客户端#tcpcliserv/tcpcli01 127.0.0.1g) 运行不同版本的tcp服务器,如tcpserv043.编写简单的聊天程序或者文件传输程序(类似TFTP)。

a)修改服务器端的“应用层”内容原来代码位置:lib/str_echo.cb)修改客户端的“应用层”内容原来代码位置:lib/str_cli.cc)随时编译,以检验代码的语法问题和功能问题#maked) 重新运行验证功能三、数据结构与模块说明(功能与框图)四、自我评价与总结1差距与局限,什么地方做的不太好,或什么地方可以做得更好,进一步的工作。

socket实现过程:服务器端的recv()函数,不同情况下,返回的次数不清楚,其实是对返回的条件不清楚,后来经过查阅资料以及对事例的研究,基本清楚了它的运用。

2从本作业得到的收获。

Linux基础操作实验报告范文

Linux基础操作实验报告范文学号:组号:上机实践日期:2022-9-19上机实践时间:2学时一、目的(本次实验所涉及并要求掌握的知识点)1、熟悉启动Linu某虚拟机与同时使用多个控制台登录Linu某的基本操作;2、熟练使用date、hutdown、e某it、halt、reboot等命令;3、掌握hell中的特殊按键、Linu某中的基本命令;4、掌握对文件的备份和恢复。

二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、电路图)1、实验内容1)练习使用启动Linu某虚拟机2)练习同时使用多个控制台登录Linu某3)练习使用date、hutdown、e某it、halt、reboot等命令a.使用date命令修正系统时间,改为当前日期时间b.使用hutdown命令发出警告信息,查看其他控制台上的用户是否收到信息。

c.通过Internet查找,是否还有其他的关机命令4)练习操作hell中的特殊按键在做以下实验之前,用root登录到虚拟控制台1(下面简称vc1),运行如下命令:ueraddmikepawdmike添加mike用户然后用新增加的mike用户分别登录虚拟控制台2和3在虚拟控制台3下用mike用户登录成功后,运行如下命令:u(变换身份到超级用户,需要输入root的密码)5)练习所学习的基础命令,完成以下问题:a.logname和whoami的区别,举例说明b.从vc1向vc3用write命令发信息,写出这条完整的命令c.假设当前路径为:/home/mike,需要变换到绝对路径为/etc/default目录下,则该命令用相对路径怎么写?6)用tar命令实现如下备份和恢复:(备份文件均放在/root目录下)a.对/home目录进行压缩备份(采用gzip压缩),备份文件名为home.tar.gzb.对/home目录进行压缩备份(采用bzip2压缩),备份文件名为home.tar.bz2,比较二种工具的压缩能力c.在/home目录下建立文件a,在/home目录下建立目录tet,在/home/tet目录下建立文件b(用vi编辑任意内容)d.对/home目录进行增量备份,备份2022年9月19日以来变化的文件,备份文件名为home.20220919.tare.删除目录/home,会出现什么情况?然后利用上述备份恢复所有文件。

Linux网络编程实验指导书

《Linux网络编程》实验指导书信息对抗教研室编写2016年2月实验一基本Socket套接字编程接口实验(2学时)基本实验实验类别:基本实验实验目的:1、Linux操作系统熟悉操作系统熟悉2、掌握Linux基本命令使用3、掌握Linux程序编写、编译、调试方法4、熟悉Socket基本网络相关函数实验内容:1、安装虚拟机Linux,熟悉开发环境,熟悉开发环境2、使用常用Linux命令,熟悉命令操作命令,熟悉命令操作3、熟悉基本网络操作函数接口熟悉基本网络操作函数接口4、编写程序测试各个函数编写程序测试各个函数实验步骤1、安装VS2005或高版本。

如果实验室不能安装,可以在自己计算机上安装。

或高版本。

如果实验室不能安装,可以在自己计算机上安装。

2、安装成功后,打开VS,熟悉菜单、控件及界面组成,熟悉菜单、控件及界面组成3、新建WEB工程,加入一些控件,编写简单代码,并运行(用浏览器浏览)工程,加入一些控件,编写简单代码,并运行(用浏览器浏览)4、插入JavaScript代码,并执行代码,并执行5、利用MSDN查找资料查找资料实验要求1、实验报告中需要记录操作过程实验报告中需要记录操作过程2、记录自己编写的代码,运行结果、记录自己编写的代码,运行结果3、实验报告最后必需有总结与分析实验二TCP套接字编程实验(2学时)基本实验实验类别:基本实验实验目的:1、熟悉TCP编程相关函数编程相关函数2、掌握时间服务器原理3、掌握TCP服务器端、客户端程序编写4、掌握网络套接字状态查看方法实验内容:5、编写TCP时间服务器端程序时间服务器端程序6、编写TCP时间客户端程序时间客户端程序7、测试客户端和服务器是否能够通信测试客户端和服务器是否能够通信8、客户端和服务器端分别打印对端的信息客户端和服务器端分别打印对端的信息实验步骤1.解压参考源代码。

解压参考源代码。

tar xvzf 2nd_daytime.tar.gz 2.进入源代码目录进入源代码目录cd exam2 3.编译服务器端源代码编译服务器端源代码gcc server.c –o server 4.编译客户端源代码编译客户端源代码gcc client.c –o client 5.运行服务器端程序运行服务器端程序./server 6.运行客户端程序运行客户端程序./client 127.0.0.1 7.查看服务器与客户端是否能够正常通信查看服务器与客户端是否能够正常通信8.使用netstat,ps等命令查看整个通信状态与程序运行状态等命令查看整个通信状态与程序运行状态实验要求1.实验报告中需要记录操作过程实验报告中需要记录操作过程2.记录自己编写的代码,运行结果记录自己编写的代码,运行结果3.实验报告最后必需有总结与分析实验三UDP套接字编程实验(2学时)基本实验实验类别:基本实验实验目的:1、熟悉UDP编程相关函数编程相关函数2、掌握时间服务器原理3、掌握UDP服务器端、客户端程序编写4、掌握网络套接字状态查看方法实验内容:1、编写UDP时间服务器端程序时间服务器端程序2、编写UDP时间客户端程序时间客户端程序3、测试客户端和服务器是否能够通信测试客户端和服务器是否能够通信4、客户端和服务器端分别打印对端的信息客户端和服务器端分别打印对端的信息实验步骤1.解压参考源代码。

8个基础Linux编程基础实验

Linux编程基础A 实验指导书计算机科学与技术学院2011.9注意事项1.实验报告封面及报告纸请自行领取。

2.实验报告封面及报告纸的各项内容务必填全。

3.一次上机实验一张报告纸(8次实验共8张)。

4.实验报告上的各栏目严格按本指导书填写。

5.实验地点:9号楼北侧5层507网络实验室。

6.实验时间:第3、5、8、10、11、13、14、15周的周二12节、周四晚上910节。

实验项目:Linux系统常用命令的使用(编码:E1202801)实验目的:熟练掌握Linux操作系统常用命令的用法和主要选项。

理解文件与目录的基本概念,以及输入输出重定向和管道的概念与用法。

实验仪器:装有Linux操作系统的PC机。

原理概述:Linux操作系统有图形操作界面,也有命令行操作界面。

各类命令可以完成Linux操作系统的全部操作与配置。

用户输入命令后,由shell解释执行。

Linux以树形结构组织所有的文件与目录,没有Windows中盘符的概念。

输入输出重定向可以把输入与输出重新定向到用户指定的地方,管道则可以把多个命令的输入输出连接起来。

实验内容步骤:1.根据教材练习以下功能:切换Linux虚拟控制台,输出输入重定向,管道,通配符,2.根据教材练习以下常用命令:cat,more,less,cp,rm,mv,mkdir,rmdir,cd,pwd,ls,grep,ln,tar,gzip,unzip,echo,cal,date,clear,rpm,man。

数据记录表及处理:记录某些命令的输出。

实验结论及问题讨论:自己总结。

实验项目:Linux系统的基本操作(编码:E1202802)实验目的:掌握Linux系统的基本操作方法,包括启动与关闭Linux,Linux图形界面的使用,Linux下常用软件的使用。

实验仪器:装有Linux操作系统的PC机。

原理概述:Linux系统有多种不同的运行级别,修改配置文件,可以指定Linux启动时的默认运行级别。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档