TCP Socket网络编程实验.doc_第1页
TCP Socket网络编程实验.doc_第2页
TCP Socket网络编程实验.doc_第3页
TCP Socket网络编程实验.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验题目:TCP Socket网络编程 一、实验目的掌握基于TCP Socket的网络编程方法二、实验要求1理解TCP/IP体系结构、端口、套接字等概念;掌握TCP的传输模式。2熟悉TCP的Socket和ServerSocket类的用法,掌握基于TCP Socket的服务器和客户方编程方法及步骤。3编程实现TCP Socket通信,截取实验结果图,并提交实验报告。三、实验内容1 TCP服务器在8000端口上等待与客户端连接。当建立连接后,服务器方显示客户的IP地址和端口,并向客户端发送“Welcome!.”,然后接收客户信息并显示“Client said:”,直到客户端发送“quit”结束消息传递,最后关闭服务器端与客户端的连接。服务器方程序:import java.io.*;import .*;public class TcpServerstatic public void main(String args) throws IOException ServerSocket svrsoc=null; Socket soc=null; InputStream is=null; OutputStream os=null; /DataInputStream为InputStream 的子类。 DataInputStream in=null; /PrintStream为OutputStream的子类。 PrintStream out=null; try /构造ServerSockets对象,端口为8000, svrsoc=new ServerSocket(8000);/*让服务者永远等待,直到客户连接到该端口。服务者等待一个*连接,返回新套接口soc,新套接口soc实现了与客户原建立的套接口*的连接。*/ soc=svrsoc.accept(); /获得新套接口soc绑定的输入流InputStream对象 is=soc.getInputStream(); /构造数据输入流DataInputStream对象in in=new DataInputStream(is); /获得新套接口soc绑定的输出流OnputStream对象 os=soc.getOutputStream(); /构造输出流PrintStream 对象out out=new PrintStream(os); /*这里创建了数据输入流类对象in和输出流类对象out,服务者利用它们从客户接收输入信息(in)和向客户发送信息(out),同样,在客户端也应该建立这两个对象,用来与服务者进行双向通信。服务者向输出流发送的所有信息都成为客户的输入信息,而客户程序的输出的信息都送入服务者的输入流。*/ /获到客户方的IP地址,soc绑定了与它连接的客户地址 InetAddress clientIP=soc.getInetAddress(); /在服务方显示客户方的IP地址 System.out.println(Clients IP address:+clientIP); int port; port=soc.getPort(); /得到客户方的端口 /在服务方显示客户方的端口 System.out.println(Clients port:+port); /向客户发送 out.println(Welcome!.); /*readLine()是数据输入流类中的一个方法,用于从输入流中读入对方发送的一行信息。*/ String str=in.readLine(); /在in上读一行/*当输入流读入的不是”quit”时,将输入的数据写入输出流中,在屏幕上显示,然后继续从输入流中读入,不断循环,直到输入”quit”为止*/ while(!str.equals(quit) /如读出的不是“quit”,继续读 System.out.println(Client said:+str); str=in.readLine(); System.out.println(Client want to leave.); catch(Exception e) System.out.println(Error:+e); /*不断循环以上代码,直到客户输入”quit”或者str为null为止。最后在退出前,关闭输入输出流及Socket*/ finally is.close(); /关闭输入流 os.close(); /关闭输出流 soc.close(); /关闭socket System.exit(0); 2客户方程序:import .*;import java.io.*;public class TcpClientstatic public void main(String args) throws IOException Socket soc=null; InputStream is=null; OutputStream os=null; DataInputStream in=null; PrintStream out=null; String strin=null; try/* 客户先创建一个要与指定的服务者固定端口连接的Socket,假如上*述服务者程序运行在本机”localhost”上,则以下语句。*/ soc=new Socket(localhost,8000); System.out.println(Connecting to the Server.); is=soc.getInputStream(); os=soc.getOutputStream(); in=new DataInputStream(is); out=new PrintStream(os); strin=in.readLine(); System.out.println(Server said:+strin); byte bmsg = new byte20; System.in.read(bmsg); String msg=new String(bmsg,0); msg=msg.trim();/*当从键盘读入的不是”quit”时,将键入的数据写入输出流中,然后继续从键盘读入,不断循环,直到输入”quit”为止*/ while(!msg.equals(quit) out.println(msg); System.in.read(bmsg); msg=new String(bmsg,0); msg=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论