西农java实习八_网络编程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息工程学院1
《Java语言程序设计》实验报告
学院:信息学院班级:********** 姓名:pprp 学号:**********3 成绩:
一、实习目标
(1)描述掌握Socket通信
(2)掌握UDP数据报通信
(3)掌握多线程网络编程
二、实验过程
任务一:掌握Socket类的使用
在两台机器上分别运行以下服务器端程序和客户端程序,观察程序的多次运
行结果,回答问题。
实验报告的内容与格式按任课教师的要求书写。
:public class 5已rver { ill 12 13 14 15 ^16 17 18 19 10 21 22
23 24 25 26 27 Q E ) public static void [Fiaini(5tring[] 日rgs) { Serversocket sSocket = null ; Soc ket socket = null; try { sS&cket = new ServerSoek^t(201B); } catch (lOException e) { System.out ,printin ("端口F.对占吕i
lh
); } try { socket = sSocket +acceptt); System .out .println(50c //si //s2 //s3 //s4 //s5 //s6 8 public class Client { public static void mgin(String[] args) { I© Socket docket = new Socket (); 实际报务器端主机IP //el 11 InetSocketAddress isa = new InetSocketAddress('"2618); 12 try { 13 s&eket .eonnett //c4 16 Systemi, out H print In (socket //c5 System * println(^ocket -getlocaLPortt)); /^cG 18 socket*close(); 19 } catch (lOException e) { 20 System.out.print5广直歸务器葬或"); 21 } 23 } 23 } 观察服务器端和客户端的输出,说明添加注释的每行代码作用 截图:两次服务器与客户端的输出,可以发现两次所用到的端口是随机生成的是 不一致的 /127-0.0.1 2018 /127.0.0,1:59368 59368 ^127,0,0.1 59368 /127-0<0.1:2018 201S /127.0.0.1 2018 /127-0.0.1:59898 59898 |/127.0,0,1 59898 /127.0.0.1:2018 2018 代码如下: package work!; import java.io.IdExemption;[] public class Server { public static void main(String[] args) { ScrvcrSockct sSockct - rullj Socket socket - null; try { sSocket = new Se rve rSocket(2018); } catch (IOException el) { System.out*print丄n("端口已枫占用!; } try { socket = sSocket, acceipt()j System.out,prin tlnfsocket.get InetAddress()); System .out ・println (呂.RetPort ()); System.out・println(socket.getLocalSocketAddress()); SystRiuouf. print In (socket ・grtLocalPort()); } catch (IOException e) { System .out. printin ("薩接容户端异常「); } } } package workl; import java,io.IOException;」 public class Client { public static void main(String []日rg 訂 throws lOException { Socket sorkrt = new Socket(}j InertSocketAddress isa = new InetSocketAddress ("127.0.6.1 ",2£ll8}; try ( socket ,connect(isa); System. cut . println( socket . ^etlneIzAdd 广es5()); System ・out f println(socket »getPort()); Systcim.flut^rintlntsofket^gPtLocalSockctAddrcsst)); System.omt ” printIn (socket .getLota!Port()}; } catch (IOExcept±on e) { System, cut . print In 器异當、"); 问题回答: S1:实例化ServerSocket 对象,并指定服务器中的端口为 2018 S2: ServerSocket 对象的accept()方法示例化Socket 对象,并阻塞进程, 等待用户端的连接 S3:打印服务器端套接字连接的IP 地址 S4:打印服务器端套接字连接的远程端口 S5:得到服务器端套接字绑定的本地IP 地址及端口 S6:打印服务器端套接字绑定的本地端口 C1:实例化Socket 对象 C2 :将InetSocketAddress 类实例化的对象中所包含的服务器主机 IP 及 端口,调用connect ()方法,传入至Socket 类中,与服务器进行连接 C3 :打印用户端套接字连接的IP 地址 //r ; g HZ //C5