实验二网络基础编程实验

上传人:壹****1 文档编号:511802056 上传时间:2023-05-31 格式:DOC 页数:22 大小:801KB
返回 下载 相关 举报
实验二网络基础编程实验_第1页
第1页 / 共22页
实验二网络基础编程实验_第2页
第2页 / 共22页
实验二网络基础编程实验_第3页
第3页 / 共22页
实验二网络基础编程实验_第4页
第4页 / 共22页
实验二网络基础编程实验_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《实验二网络基础编程实验》由会员分享,可在线阅读,更多相关《实验二网络基础编程实验(22页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! 计算机网络实验报告信息安全2015年4月1日实验二 网络基础编程实验一、 实验目的通过本实验,学习采用Socket(套接字)设计简单的网络数据收发程序,理解应用数据包是如何通过传输层进行传送的。二、实验内容2.1、编写TCP进行数据发送的简单程序(java) 2.2、编写UDP进行数据发送的简单程序(java) 2.3多线程线程池对比 2.4写一个简单的chat程序,编程语言不限。三、 实验程序(1)TCP客户端TcpClient.javaimport java.io.*;import .*;public class TcpClientpubli

2、c static void main(String argv) throws Exception String sentence;/定义客户消息 String modifiedSentence;/定义服务器消息 InetAddress address = InetAddress.getLocalHost();/获取本机端口 BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in); /创建客户输入流 /创建一个Scoket实例:构造函数向指定的远程主机和端口建立一个TCP连接。address

3、.getHostName()为本机IP地址;6789为TCP服务器端口 Socket clientSocket = new Socket(address.getHostName(),6789); /客户套接字 /通过套接字的输入输出流(I/O streams)进行通信DataOutputStream outToServer = new DataOutputStream( clientSocket.getOutputStream(); /创建客户端到服务器的输出流BufferedReader inFromServer = new BufferedReader( new InputStreamRe

4、ader(clientSocket.getInputStream(); /创建服务端输入流 sentence = inFromUser.readLine();/客户端读取客户输入消息 outToServer.writeBytes(sentence+n); /客户端发送消息到服务器端 modifiedSentence =inFromServer.readLine();/客户端接收来自服务器的消息 System.out.println(client receive from TCP server: + modifiedSentence);/客户端显示服务器发送过来的消息 clientSocket.

5、close(); /客户端关闭套接字 (2)TCP服务器端TcpServer.javaimport java.io.*;import .*;public class TcpServer public static void main(String argV) throws Exception String clientSentence;/定义接收的消息 String capitalizedSentence;/定义发送的消息 ServerSocket welcomeSocket= new ServerSocket(6789); /创建一个ServerSocket实例,并指定本地端口,侦听该指定端

6、口收到的连接 while(true) Socket connectionSocket = welcomeSocket.accept(); /调用ServerSocket的accept()方法以获取下一个客户端连接,基于新建立的客户端连接,创建一个Socket实例,并由accept()方法返回。 BufferedReader inFromClient = new BufferedReader( new InputStreamReader(connectionSocket.getInputStream();/创建客户端输入流 DataOutputStream outToClient = new D

7、ataOutputStream(connectionSocket.getOutputStream();/创建服务器输出流 /使用所返回的Socket实例的InputStream和OutputStream与客户端进行通信。 clientSentence = inFromClient.readLine(); /接收客户发送的信息 capitalizedSentence = clientSentence.toUpperCase()+n; /转换接收到的信息,小写变大写 outToClient.writeBytes(TCP accept +capitalizedSentence);/输出给客户端 (3

8、)UDP通信服务器端 UDPServer.javaimport java.io.*;import .*;public class UDPServer public static void main(String argV) throws Exception DatagramSocket serverSocket = new DatagramSocket (9876); /构造数据包套接字并将其绑定到主机上的端口9876 byte receiveData = new byte1024; /服务器从客户端接收到的信息 byte sendData = new byte1024; /服务器发送给客户端

9、的信息 while(true) DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length); /创建从客户端数据包 serverSocket.receive(receivePacket); /服务器从客户端接收数据包 String sentence = new String(receivePacket.getData(); /服务器接打开数据包得到消息 InetAddress IPAddress = receivePacket.getAddress();/获取客户端的IP地址 int por

10、t = receivePacket.getPort();/获取客户端端口 String capitalizedSentence = sentence.toUpperCase();/将接收的信息转为大写 sendData = capitalizedSentence.getBytes(); /转换后的消息 /服务器发送给客户端的数据包,将转换后的消息打包 DatagramPacket sendPacket = new DatagramPacket(sendData,sendData.length,IPAddress,port); serverSocket.send(sendPacket);/服务器

11、发送数据包给客户端 (4)UDP通信客户端 UDPClient.javaimport java.io.*;import .*;public class UDPClientpublic static void main(String argv) throws Exception byte receiveData = new byte1024; /客户端接收的消息 byte sendData = new byte1024; /客户端发送的消息 BufferedReader inFromReader = new BufferedReader( new InputStreamReader(System

12、.in);/客户输入流 DatagramSocket clientSocket = new DatagramSocket (); /客户端数据包套接字 InetAddress IPAddress = InetAddress.getLocalHost(); /获取本机IP地址 String sentence = inFromReader.readLine(); /客户端读取用户所输入的消息 sendData = sentence.getBytes(); /复制到要发送的消息 /客户端发送的数据包,这里将客户端要发送的消息,客户端的IP地址,端口打包 DatagramPacket sendPack

13、et = new DatagramPacket(sendData,sendData.length,IPAddress,9876); clientSocket.send(sendPacket);/客户端套接字发送数据包 /客户端接收的数据包,数据包包含从服务器接收的消息,消息长度 DatagramPacket receivePacket = new DatagramPacket(receiveData,receiveData.length); clientSocket.receive(receivePacket); /客户端接收数据包 String modifiedSentence = new

14、String(receivePacket.getData(); /将接收的数据包解开 System.out.println(client receive from UDP server: + modifiedSentence + from from the client!); /客户端显示数据包里的消息 clientSocket.close(); /关闭套接字 (5) 通过TCP协议与回馈服务器(echo server)进行通信的客户端TCPEchoClient.javaimport java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import .ServerSocket;import .Socket;import .SocketAddress;public class TCPEchoServerprivate static final int BUFSIZE = 32;public static void main(String args) throws IOExceptionif (args.le

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号