实验报告 实验一 socket 编程 一、实验目的 通过socket 程序的编写、调试,掌握socket 编程的基本方法,了解客户端与服务器端的特点,掌握并熟悉运用socket 类与serversocket 类。 二、实验内容 ①学习 socket 编程使用的类和接口,着重掌握基于 tcp 协议的socket。 ②编写服务器端的应用程序 ③编写客户端的应用程序 ④实现服务器端与客户端的交互 三、实验代码 1.服务器端程序 过程:在端口 5000 上创建一个等待连接的serversocket 对象 server:server=new serversocket(5000);接着调用server 对象的accept()方法等待某客户程序发出连接请求。该方法一直阻塞直到有客户连接到带端口。一旦有客户发送正确请求,则连接成功,accept()方法返回一个 socket 对象,于是得到了一个新的用于通信的socket 对象,通信链路建立成功。然后利用socket 类提供的方法创建 socket 对象的输入流和输出流。此后即于客户端进行通信,直到客户端断开连接即关闭各个流结束通信。 代码如下: import java.net.*; import java.io.*; class aa { static public void main (string args[]) throws ioexception { serversocket server=null; socket socket=null; inputstream is=null; outputstream os=null; datainputstream in=null; printstream out=null; try { //在端口 5000 注册服务 server=new serversocket(5000); socket =server.accept();//侦听连接请求,等待连接 system.out.println(**********************服务器端界面*************************); system.out.println(与客户端连接成功!); system.out.println(); system.out.println(对话内容为:); system.out.println(); system.out.println(等待客户发送信息.....); //获取对应的socket 的输入/输出流 is=socket.getinputstream(); os=socket.getoutputstream(); //建立数据流 in= new datainputstream(is); out =new printstream(os);//表示向对方输出 string str=in.readline();//逐行读取 do { system.out.println(客户端说:+ str); str=in.readline(); }while(str.trim().equals(bye)) //如果是“bye”就退出 system.out.println(客户想要离开); } catch(exception e) //捕获程序异常 { system.out.println(error:+e); } finally { is.close();//关闭输入流 os.close();//关...