第一篇:计算机网络编程实习1
实验1——JAVA Socket编程处理初步
实验目的:熟悉JAVA Socket编程基础知识
实验内容:掌握JAVA网络编程的Socket地址类和Socket类的使用,了解JAVA输入输出流的使用。编写一对客户端-服务器通信程序。
实验要求:
1、了解JAVA中地址表示的几种方法,掌握Socket编程中地址相关的类
(InetAddress和NetworkInterface)的使用方法:编写程序完成下述功能:
1.在标准输出罗列本机所有网络接口
2.在标准输出给出“本地回环地址”的网络接口的名称
3.判断本机所有网络接口中哪些可以到达baidu.com2、在本机创建一个临时目录,并在其中创建2-3个文本文件(文件名任意填
写)。编写客户端服务器程序。完成以下功能:
编写一个TCP服务端程序,实现下述功能:
1.侦听2010端口,等待客户端连接;
2.当客户端连接创建之后,读取客户端消息,按照以下规则分别执行相应操作:
消息==list, 则将刚创建的临时目录中的文件名以换行字符(n)
分隔,传输给客户端;
消息以echo为前缀,则将echo后的字符作为内容传输给客户端;
消息==close,则关闭与客户端的连接;
其他情况,传输UNKNOWN Commands给客户端;
3.处理完客户端消息,并且客户端连接尚未关闭,则继续等待客户端输入,回到上述第二步;
编写一个TCP客户端程序,实现下述功能:
1.连接服务端程序(2010端口)
2.如果连接建立成功,转第4步
3.如果连接失败,在标准输出打印“Connection Failed.”,并退出程序;
4.从标准输入读取用户输入,将用户输入传输给服务端
5.如果用户输入是close,是则关闭与服务端连接,并在标准输出打印“Connection Closed”,退出程序;否则,转下一步
6.读取服务端消息,将消息打印至标准输出;转4步。
3、撰写实验报告并附上所用程序和结果。
2013-5-3
第二篇:计算机网络实验报告(路由算法、Socket编程)
计算机网络实验报告
班级: 姓名: 学号:
实验一
一. 实验目的及要求
编写程序,模拟距离矢量路由算法的路由表交换过程,演示交换后的路由表的变化。
二. 实验原理
距离矢量路由算法是这样工作的:每个路由器维护一张路由表(即一个矢量),它以网络中的每个路由器为索引,表中列出了当前已知的路由器到每个目标路由器的最佳距离,以及所使用的线路。通过在邻居之间相互交换信息,路由器不断地更新他们的内部路由表。
举例来说,假定使用延迟作为“距离”的度量标准,并且该路由器发送一个列表,其中包含了他到每一个目标路由器的延时估计值;同时,他也从每个邻居路由器接收到一个类似的列表。假设一个路由器接收到来自邻居x的一个列表,其中x(i)表示x估计的到达路由器i所需要的时间。如果该路由器知道他到x的延时为m毫秒,那么他也知道在x(i)+m毫秒之间内经过x可以到达路由器i。一个路由器针对每个邻居都执行这样的计算,就可以发现最佳的估计值,然后在新的路由器表中使用这个最佳的估计值以及对应的输出路线。
三.源程序:
#include “stdio.h” #include “stdlib.h” #include “malloc.h” #include “graphics.h” #include “dos.h” #define VERNUM 7
typedef struct {
int dis;
int flag;
int flag2;}RoutNode;
char tmp[10];RoutNode data[VERNUM][VERNUM];
void welcome();
void InitRoutData(FILE* pfile);
void PrintRoutData();
void SendInf(int recv, int send);
void Exchange();
int main(){
int start, end, i, j, m, n;
FILE *pfile;
welcome();
pfile = fopen(“1.txt”, “r”);
if(pfile == NULL)
{
printf(“the file wrong,press any key to come back.n”);
getch();
return;
}
else
InitRoutData(pfile);
fclose(pfile);
printf(“nthe original route table:n”);
for(i = 0;i { printf(“%c||”, i + 65); for(j = 0;j < VERNUM;j++) if(data[i][j].dis > 0) printf(“<%c %d> ”, j + 65, data[i][j].dis); printf(“n”); } PrintRoutData(); getch(); for(i = 0;i < VERNUM;i++) { for(m = 0;m < VERNUM;m++) for(n = 0;n < VERNUM;n++) data[m][n].flag = 0; Exchange(); PrintRoutData(); getch(); } printf(“nexchange the route table:n”); return 0;} void welcome(){ int gdriver=DETECT,gmode; registerbgidriver(EGAVGA_driver); initgraph(&gdriver, &gmode,“C:Win-TC”); cleardevice(); setbkcolor(CYAN); setviewport(0,0,639,479,1); clearviewport(); setbkcolor(BLUE); setcolor(14); rectangle(200,200,440,280); setfillstyle(1,5); floodfill(300,240,14); settextstyle(0,0,2); outtextxy(50,30,“Distance Vector Routing Algorithm”); setcolor(15); settextstyle(1,0,4); outtextxy(260,214,“Welcome to use!”); line(0,80,640,80); getch(); delay(300); cleardevice();} void InitRoutData(FILE* pfile){ char num[10]; int i = 0; char c; int m, n; fseek(pfile, 0, 0); for(m = 0;!feof(pfile)&& m < 7;m++) { for(n = 0;!feof(pfile)&& n < 7;n++) { while(!feof(pfile)) { c = fgetc(pfile); if(c == ',') { num[i] = ' '; data[m][n].dis = atoi(num); data[m][n].flag = 0; data[m][n].flag = 0; i = 0; break; } /*end of if*/ else if((c >= '0' && c <= '9')|| c == '-') { num[i++] = c; } /*end of else if*/ } /*end of while*/ } /*end of for(n = 0*/ } /*end of for(m = 0*/ } void PrintRoutData(){ int i, j; for(i = 0;i < VERNUM;i++) { settextstyle(1,0,3); sprintf(tmp,“ %c”,i + 65); outtextxy(i*80+50,130,tmp); outtextxy(10,160+i*40,tmp); } for(j = 0;j< VERNUM;j++) { for(i = 0;i < VERNUM;i++) { if(data[i][j].dis <= 0&&i!=j) { if(data[i][j].flag2 ==1) { setfillstyle(SOLID_FILL,5); bar(80*i+50,40*j+155,80*i+120,40*j+185); delay(50000); data[i][j].flag2 =0; } setfillstyle(SOLID_FILL,3); bar(80*i+50,40*j+155,80*i+120,40*j+185); settextstyle(1,0,2); sprintf(tmp,“-”); outtextxy(80*i+65,40*j+165,tmp); } else if(data[i][j].dis >=0) { if(data[i][j].flag2 ==1) { setfillstyle(SOLID_FILL,5); bar(80*i+50,40*j+155,80*i+120,40*j+185); delay(50000); data[i][j].flag2 =0; } setfillstyle(SOLID_FILL,3); bar(80*i+50,40*j+155,80*i+120,40*j+185); settextstyle(1,0,2); sprintf(tmp,“%d”,data[i][j].dis); outtextxy(80*i+65,40*j+165,tmp); } } /*end of for(j = 0*/ } /*end of for(i = 0*/ } void SendInf(int recv, int send){ int i; for(i = 0;i < VERNUM;i++) { if(data[send][i].dis > 0&& data[send][i].flag!=1) { if(data[recv][i].dis <= 0&&recv!=i) { data[recv][i].dis = data[send][i].dis + data[recv][send].dis; data[recv][i].flag =1; data[recv][i].flag2 =1; } else if(data[recv][i].dis > data[send][i].dis + data[recv][send].dis) { data[recv][i].dis = data[send][i].dis + data[recv][send].dis; data[recv][i].flag =1; data[recv][i].flag2 =1; } } /*end of if*/ } /*end of for*/ } void Exchange(){ int i, j; for(i = 0;i < VERNUM;i++) { for(j = 0;j < VERNUM;j++) { if(data[i][j].dis > 0&& data[i][j].flag!=1) { SendInf(i, j); } /*end of if*/ } /*end of for(j = 0*/ } /*end of for(i = 0*/ } 四、实验心得体会 通过本次实验训练,我了解了距离矢量路由算法的基本原理,复习了C语言编程的内容,通过对路由算法的实现,加深了对路由表交换的理解。 实验二 一、实验目的及要求 编写程序,联系Socket编程和TCP/IP协议的应用,要求实现Server端和Client端的信息通信。 二、实验原理 在TCP/IP编程中,为客户端和服务器端提供相同的端口号和IP地址号,实现Server端和Client端互联,运用Java文件流的知识,实现两端的信息传递。 三、源程序 /********************ChatClient*********************/ import java.awt.*;import java.awt.event.*;import java.io.*;import java.io.IOException;import java.net.*; public class ChatClient extends Frame{ Socket s = null;DataOutputStream dos = null;TextField tf = new TextField();TextArea ta = new TextArea(); public static void main(String[] args){ new ChatClient().launchFrame();} public void launchFrame(){ setLocation(400,300);this.setSize(300,300);add(tf,BorderLayout.SOUTH);add(ta,BorderLayout.NORTH);pack();tf.addActionListener(new tfListener());this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ disconn(); System.exit(0); } });setVisible(true);conn();} public void conn(){ try { s = new Socket(“127.0.0.1”,5555); dos = new DataOutputStream(s.getOutputStream()); System.out.println(“客户端连接成功!”);} catch(UnknownHostException e){ e.printStackTrace();} catch(IOException e){ e.printStackTrace();} } public void disconn(){ try { dos.close(); s.close();} catch(IOException e){ e.printStackTrace();} } private class tfListener implements ActionListener { public void actionPerformed(ActionEvent e){ String str = tf.getText().trim(); ta.setText(str); tf.setText(“"); try { dos.writeUTF(str); dos.flush(); } catch(IOException e1){ e1.printStackTrace(); } } } } /********************ChatServer******************/ import java.io.IOException;import java.net.*;import java.io.*; public class ChatServer { public static void main(String[] args){ boolean started = false; try { ServerSocket ss = new ServerSocket(5555); started = true; while(started){ boolean bConn = false; Socket s = ss.accept(); bConn = true; System.out.println(”一个客户端已连接"); DataInputStream dis = new DataInputStream(s.getInputStream()); while(bConn){ String str = dis.readUTF(); System.out.println(str); } } } dis.close();} } catch(IOException e){ e.printStackTrace();} 四、实验心得体会 通过本次实验的练习,熟悉了TCP/IP协议,对套接字等概念有了深入的了解,对用Java语言实现Socket编程并实现客户端和服务器端的信息交互有了一定的了解。 一.实习目的随着我国机械加工行业的发展数控设备的广泛应用,不少职校都开设数控技术应用专业,培养应用型人才.通过实习是为了更好的将理论知识运用到实践中去,了解现代机械制造工业的工艺过程,和数控加工方法及 其所用主要设备的工作原理,以生产实践获的感性知识.二.实习内容 1;安全生产操作规程:听老师讲解有关工业安全方面的知识.遵守操作规程才是安全的保障.a,进入工作场地须戴好劳动防护用品,女生须戴好工作帽.b,上班前须先对机床和润滑系统注油.检查机床分机构的完好性.手柄位置的正确性;启动后应使主轴低 速空转1-2分钟,等机床正常后才能工作.c,工作中需要变速的必须先停车.变换走刀箱,手柄位置要低速时进行.使用电器开的机床不准用正,反车 作紧急停车,以免打坏齿轮.d,不允许在卡盘上及床身导轨上敲击校直工作,床面上不准放置工具或工作.e,更换卡盘或装夹较重工作时,应用木版保护床面如工件不卸,应用千斤顶支承.2;机床类型和主要技术参数:CNC6132 床身上最大回转直径--340mm 最大加工长度--750mm 主轴通孔直径--52mm 主轴转速--100-2100r.p,m 纵向进给最大速度--3m/min 横向进给最大速度--3m/min X 轴定位精度--±0.01 Z 轴定位精度--±0.02 X 轴重复定位精度--0.005mm Z 轴重复定位精度--0.01mm 主电机功率--4kw 指令方式---绝对值 / 增量值 最大编程尺寸--±9999.999 零件程序贮存量 / 程序量--6KB 刀架刀数值---4 3;机床结构的组成部分:车床主要由变速箱、主轴箱、挂轮箱、进给箱、溜板箱、卡盘,刀架、尾座、床 身、丝杆、光杆和操纵杆/操作面板(显示器`软键盘)组成.调速方式:变速齿轮调速方式,带传动方式,两个电动机分别驱动调速方式.4;刀具的选折:数控刀具的选择决定了切削用量的确定,是数控加工工艺中的重要过程.它不仅影响数控机床的加工效率,而且直接影响加工质量,同时也对操作者安全问题有影响.应根据机床的加工能力、工件材料的性能、加工工序、切削用量以及其它相关因素正确选用刀具.因此刀具的选折很重要.5;我们所用的刀具材料和刀具有:高速钢刀具;硬质合金刀具等.外圆刀.螺纹刀和切断刀.6;要根据被加工工件的形状来选刀具:要考虑零件是否能够加工出来,以避免少切后者过切的现象.结合工件材料来选折刀具,考虑工件材料个刀具材料的硬度,选好刀具才能进行加工,避免在切削过程中出现打刀问题.根据机床主轴转数和切削用量来选折刀具 7;编程和输入程序: 按照老师给我的工件图纸和尺寸进行编写,我们常用到的主要编程指令有/G90,G71,G72,G73.和程序主要字符:O程序名,T刀具符号,M字符:M03主轴顺时针旋转;F字功能用于控制 切削进给量;S字功能控制主轴转速;G00快速定位G01直线插补指令;G02/G03顺逆圆弧插补和M30程序停止.将编好的程序在机床控制面板上进行输入,过程中可以对程序进行检查和摸拟走刀.程序准备好之后就可以按照操作规程进行操作加工.8;工件校正:可采用目测方法,和仪器校正法,达到工件和主轴旋转中心线平行即可.9;对刀:首先沿x轴方向切一外圆,用千分尺测量工件直径,取得读数再平端面,完后输入x/z坐标值.其他刀具在实习过程中我门都采用类似方法.10;加工操作和加工对象:在控制面板进行调制在参数中对进给陪率和主轴陪率值进行修调如:30%`60%`80%.和主轴转数S500.精度高的回转体工件.表面粗糟度小的回转体零件.轮廓复杂的回转体零件. 计算机辅助制造 实训报告 专 业 数控技术班 级 数控1002 学 号 09姓 名___耿 策 指导教师路大勇 起止日期 2012.12.10—12.14 目录 计算机辅助制造实训任务书………………………………1 实训任务一………………………………………………… 实训任务二………………………………………………… 实训任务三………………………………………………… 实训任务四(配合件凸件)……………………………… 实训任务五(配合件凹件)……………………………… 心得体会…………………………………………………… 3 6 7 10 13 16 mastercam实训任务书 一、目的与要求 mastercam实训为该课程学习的重要组成部分。用于巩固所学知识,强化二维和三维造型技能,熟练进行二维加工和三维曲面粗、精加工刀具路径的生成、检验、后处理等的操作。实训时间为一周,要求完成规定的造型与编程任务(电子稿)和《实训报告》。 二、任务说明 1.完成图1的二维造型,不标注尺寸。完成外形铣削及挖槽铣削加工程序的编制(零件厚度10),书写相应的文字说明。编程原点位于底边中点,材料为45钢,刀具及切削参数自定。 实训任务一 实训任务二 2.采用实体建模方法,完成图2形体的三维造型。 3.综合运用所学造型及编程技能,完成下列零件的工艺设计、程序编制及加工校验,书写相应的文字说明。刀具及切削参数自定。 实训任务三 实训任务四 实训任务五 实训任务一: 实训任务一 1图样分析: 通过看图纸,了解工件的外形。由图可知,该工件是一个二维造型。2.工艺路线分析: 根据图纸可知,该工件在加工过程中,首先选用φ20立铣刀铣出外形轮廓,接着选用φ12立铣刀用外形铣削的方式分三层铣出内槽轮廓。3刀具的选择: φ12立铣刀、φ20立铣刀 表1 工件1 工艺过程卡篇二:计算机编程实习报告 土木工程2007级 计算机实习任务书 指导教师 班 级土木(xx)班 姓 名mr.su 学 号 西南交通大学土木工程学院 2008年11月 (一)实习时间:2008 年11月30日—12月14日 (二)实习地点:x7103 (三)实习目的: 计算机实习是本科计算机基础教学的一个重要环节。它对于巩固学生的计算机基础知识,增强学生的计算机应用水平,改善学生的知识结构,具有重要意义。 本课程的教学目的是:通过系统的上机实习,使学生的计算机基础知识与基本操作技能得到进一步的巩固,提高学生的编程能力和用机水平,培养学生用计算机分析与解决问题的意识,为后续课程打下基础。 (四)实习内容: 本实习要求完成如下三项任务: 1. 巩固所学的计算机基本知识和基本操作技能,包括: (1)熟练掌握正确的键盘指法和英文盲打技术;(2)能熟练使用windows操作系统; (3)熟练掌握word、excel、powerpoint等办公自动化软件;(4)能使用网络获取、发送信息; (5)用powerpoint制作一组幻灯片(幻灯片所表述的主题自定),或用excel 绘制出图1所示的sin(x)、cos(x)函数曲线。2. 计算机语言及编程 用本学期已学过的vc++语言编程。编程题目及要求由指导教师指定(可参考附录中提供的题目)。 3. 提交一份实习报告(要求打印) 实习报告不得少于1000字:主要总结实习心得和实习成果(全部程序及计算 (五)实习成果: 【1】程序1: 按以下形式打印出杨辉三角形中的各值 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 · · · · · ·· ··· ····· ***691 算法原理: 数据结构:用一个二维数组存放杨辉三角形的数据。 分析杨辉三角形的数据特点,该三角形每一行的行初和行末的数据都是1,从第三行起,每行数据的第2—i-2列数据都满足以下关系:a[i][j]=a[i-1][j-i]+a[i-1][j];根据上述关系得出杨辉三角的每个数据存放在已定义的二维数组中,然后按照图形格式输出已经存放的数据,得出杨辉三角。 程序流程图: 数组a[i][j],i表示行,j表示每一行的第几个数。使用方法:输入程序,直接显示。源程序: #include 【2】程序2: 从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。算法原理:没有具体详细的数学算法原理。 变量说明:p表示的是要输入的字符,char p[100]表示的是一个字符型一维数组,t表示的 是输出文件的名称,doc表示的是文件的输出格式,i表示的是循环变量。 使用方法:输入需要的字符,用#键结束,#键之后的不能输出。 一、工作介绍 我在公司主要负责维护网站,对公司网站进行简单的更新、维护工作,每天进行网站文章更新,网站推广工作,公司的网站是采用php动态技术编写的,通过linux操作系统来搭建服务器平台,采用linux+apache+php+mysql这种lamp组合,计算机网络实习报告。公司网站自带有后台登陆系统,每天我都要登陆后台,查看用户留言,并解决客户提出的问题,我有时还要做一些网页,工作流程就是接收美工人员制做的网站模板,将其通过photoshop切片,然后导入dreamweaver进行排版,(排版主要使用css+div),并进一步的加以制作,完善美化,如加入js代码,或透明flash,因为网页是用css+div进行排版的,所以在最后一步的时候,我们还需要进行浏览器测试,因为css+div排版方式有一个最大的缺点就是:浏览器不兼容的问题,典型的如:ie与fireworks,因为各种浏览器使用的协议不同,所以会导致页面在最终浏览的时候有一些小问题,如:页面混乱,图片、文字之间的距离过大或过小,页面不美观等等,做为一个新人,我在有些方面的技术还很不成熟,在公司同事的帮助下,我的技术得到了快速的提升。 二、工作内容 刚来公司的时候,我对于一切还处于好奇的阶段,一切的事务对于我来说都是很陌生的,每天的工作也不是很累,就是有些费眼睛,经常是坐了一天之后,眼睛很酸,全身都有些疼,但是很快我就适应了,过了一段时间后,我对于周边的环境都已经很熟悉了,就没有了当初的那种好奇心,那种工作劲头,总是感到每天都很无聊,感觉每天的生活都很单调,天天过一样的生活,我知道这是自己的心态问题,如果不能及时端正这种心态,那么对于自己的职场生活将是非常不利的,于是我积极调整工作心态,积极的去面对每一天。同时,我为自己的职场生涯制定了工作计划,好好努力,不断的学习,因为刚从学校出来后,我发现自己在学校学的知识还远远不够,面对公司的工作中,往往疲于奔命,为了解决这个问题,我利用下班后的业余时间,开始了自学,在这期间我自学了css+div排版、javsscript、php等,成功的掌握这些知识对于我的工作起到了很大的帮助,截止到现在为止,我所维护的网站每天都有近10万个ip进行访问,我因此得了公司经理和同事们的表扬,实习报告《计算机网络实习报告》。 三、网站推广工作 一个成功的网站需要有大量用户访问才能算是一个好网站,为了使网站赚得更高的利润,我和其它同事做起了网站推广,我做的是比较简单的推广,特点是:技术含量低、见效快、成本小,这就是软文推广,网上搜索引擎在工作时,会判断出你网站的所属链接,当那种有效的正常的链接越来越多的时候,网站的知名程度、访问量也就上来了,从而,使我们的网站越来越出名。我在软文推广时,会先注册一个博客,然后在博客里面放一个文章,并将我们网站的关键字的地址粘到文章里面,这样的话一篇文章占一人ip地址,从浏览器看来就像是别的站连到了我们网站上,这样的话,网站排名就高了很多。 四、学习工作 俗语说:活到老,学到老,我今年才二十出头,正是大好青春年华,好好大干一场的时候,可是我从学校一出来才发现,从前的自己有多么渺小,根本就不知道这世界之大,比自己历害的人多了去了,通过这一年来的实习工作,我明白了要想有一番作为就必须要脚踏实地,多多学习,为了使自己的专业知识变的更精通,每天下班后,我都挤出2个小时的时间来学习,我现在知道时间的珍贵,那真是转瞬即逝啊,通过制定计划,在加上勤奋的学习,这一年来我的专业能力得到了很大的进步。我将在以后的时间里,更加好好的学习,学习更多的知识,向着自己将来的人生理想而努力。 五、工作心得体会 实习期结束后,我和其它同事得到了正式合同并留在了这家公司,通过这次工作,我得到的最大体会就是,如果一个人在社会上没有一技之长,那么这个人将会活的很痛苦,所以,我们每个人只有不断的加强自身专业技能的学习才行。尊敬的老师,我会在业余时间好好学习,加强自己的专业知识,使自己变得更强,只有这样才能为自己交出一份满意的答卷。第三篇:数控编程实习
第四篇:编程实习心得
第五篇:计算机网络实习报告