(一)课程设计原理
实现语言:java
开发平台:MyEclipse8.5
关于java的面向连接的通信方式介绍如下:
Java提供的套接字分为客户端和服务器端两种:
1、客户端的socket
Socket(String host,int port):生成一个连接到某个主机内某个端口号码的套接字。
Socket(InetAddress host,int port):生成一个连接到某个主机地址上某个端口号码的套接字。
InputStream getInputStream():得到套接字的输入数据流。
OutputStream getOutputStream():得到套接字的输出数据流。
工作完毕,使用流对象的close()方法关闭用于网络通信的输入、输出流,用Socket对象的close()方法关闭socket。
2、服务器端的socket
ServerSocket(int port):生成一个服务器套接字,并指定所使用的端口号码,在序列里等待连接的客户机的数目最大50,若端口的值为0,则使用任何可供使用的端口。
ServerSocket(int port,int backlog):backlog表示在序列里等待连接的客户机的数目,若数目超过backlog,则客户机的连接被拒绝。
InputStream getInputStream():得到套接字的输入数据流。
OutputStream getOutputStream():得到套接字的输出数据流。
Socket accept():等待接收来自客户的连接请求,服务器会等到联机为止。
工作完毕,使用流对象的close()方法关闭用于网络通信的输入、输出流,用ServerSocket对象的close()方法关闭监听socket。
(二)源代码
因为测试机器是本机,因此目的IP选用的是自测地址(127.0.0.1)
1、服务器端源代码
import java.net.*;
import java.util.Scanner;
import java.io.*;
public class server{
public static void main( String args[]){
try{
boolean flag = true;
Socket clientSocket = null;
int c;
String outputLine;
String inputLine;
ServerSocket serverSocket = new ServerSocket( 8000);
System.out.println("Server listen on" + serverSocket.getLocalPort());
while( flag){
clientSocket = serverSocket.accept();
DataInputStream is = new DataInputStream( new
BufferedInputStream( clientSocket.getInputStream()));
PrintStream os = new PrintStream( new
BufferedOutputStream( clientSocket.getOutputStream()));
while( (inputLine = is.readLine()) != null ){
if( inputLine.equals("stop")){
System.out.println("warning: client ended this talk!");
flag = false;
os.println("warning: you ended this talk!");
break;
}
System.out.println("the client:" + inputLine);
BufferedReader br = new BufferedReader( new InputStreamReader(System.in));
outputLine = br.readLine();
os.println( outputLine );
os.flush();
}
os.close();
is.close();
clientSocket.close();
}
serverSocket.close();
}catch( IOException e){
System.err.println( "Exception" + e );
}
}
}
2客户端源代码
import java.net.*;
import java.io.*;
public class client{
public static void main( String args[]){
try{
Socket echoSocket = new Socket( "127.0.0.1",8000);
OutputStream os = echoSocket.getOutputStream();
DataInputStream is = new
DataInputStream( echoSocket.getInputStream());
int c;
String responseLine;
while( ( c = System.in.read()) != -1 ){
os.write( (byte)c);
if( c == '\n'){
os.flush();
responseLine = is.readLine();
System.out.println( "reply(server): " + responseLine );
}
}
os.close();
is.close();
echoSocket.close();
}catch( Exception e){
System.err.println( "Exception:" + e);
}
}
}
(三)运行结果
1、因为采用c/s经典模型,server的程序需要先运行,监听端口8000;运行client向server端口8000提出请求,server进行响应。
(简单说明:输入回车,表示确认发送,服务端接收到信息并打印在终端,服务器端也可发送信息给客户端,同样以回车作为确认发送。程序中,IP地址使用自测地址)
2、截图说明
若先运行client客户端。会发现异常如下:
原因是当client发出请求时,目的主机并未有服务程序处理,因此无法连接。
运行server端,截图如下:
表示服务端已在监听端口8000,当client提出连接请求时,服务端作出相应的响应。
再运行client客户端:
发现未出现任何异常。说明已经正常连接。
尝试在client客户端输入文字并发送。
Client端:
Server端:
如图,发送成功。
下面,server端也可输入信息,用于聊天。
Server端:
Client端:
表示成功接收server端发过来的信息。
终止聊天,在client端提出。终止指令为:stop。
现在在client端输入stop结束此次对话。
Client端:
Server端:
至此,会话结束。成功终止对话。
(四)实验体会与总结
Java提供socket类使得tcp连接的通信十分方便,在实现通信过程的时候,最主要的是理解java中的各种流类型起到的作用。
第二篇:《多媒体技术》课程设计报告格式
《 》
--《多媒体技术》课程设计报告
专 业: 班 级: 姓 名: 指导教师:
二○○七 年 十一 月三 十日
目 录
(空两行)
1………………………………………………………………页码 2………………………………………………………………页码 (要求:给出一级目录,宋体加粗,四号字,1.5倍行距。)
(报告正文部分):
(要求:正文部分一律用小四号字,宋体,1.5倍行距。一级大标题靠左,加粗。二级大标题靠左,不加粗。)
报告的内容:
1.设计的任务
2.对问题的分析理解
3.实现方法
4.设计用的计算机环境
5.设计实验过程
6.结 论(是否实现目标,对在设计中出现的问题是如何解决的) 报告正文格式:
1. 设计的任务
1.1XXXXX
1.2XXXXX
参考书目:(五号,宋体加粗)
[1] 柴诚敬,刘国维,李阿娜.《化工原理课程设计》.天津:天津科学技术出版社,1994
年
[2] 杨玉琥等.蜗杆凸轮机构精确度分析.天津:天津大学学报,1995,(1):62~67
(要求:五号字,宋体,单倍行距。按作者、书名、出版社、地点、出版时间格式逐一列出,中间用英文句号格开)