基于TCP与UDP的socket编程.docx
文本预览下载声明
1课程设计名称
网络编程实验
2课程设计目的
1.通过基于TCP的Socket程序的编写、调试,掌握以下知识点:
1)Socket的编程方法;
2)基于TCP协议的网络应用的传输特点。
2. 通过基于UDP的Socket程序的编写、调试,掌握以下知识点:
1)Socket的编程方法;
2)基于UDP协议的网络应用的传输特点。
3实验环境
Windows,JDK1.8,文本编辑器
4实验内容(算法、程序、步骤和方法)
4.1 实验背景
Socket,通常也称作“套接字”,是TCP/IP网络的编程的接口(API),用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式Socket是为面向连接的应用服务提供的一种接口,数据报式Socket是为无连接的服务提供的一种接口,本实验中,通过java语言编写的基于TCP/UDP的客户/服务器程序,让学生了解面向连接的网络应用程序的工作原理及其Socket程序设计的方法。
4.2 实验准备
4.2.1 TCP部分
1.实验要求利用JAVA语言编写基于TCP的网络应用程序,需要了解下面相关知识:
1)TCP/UDP基于字节流传输的基本原理;
2)Socket的相关知识;
3)Java编程基础,熟悉Java下的Socket类与ServerSocket类的方法。
2. 基于TCP的Socket编程,需要完成客户端和服务器两部分的程序设计。在代码开发之前,需要对网络层应用的协议进行详细设计,本实验的应用层协议设计如下:
(1)协议的格式:ACSII码字符,回车作为消息的结束。
(2)协议的工作原理
(2-1)客户端:从标准键盘中读入一行字符,通过Socket发送到服务器;收到服务器反馈的信息,将信息显示在标准输出屏幕上;关闭连接。
(2-2)服务器端:从Socket中读出客户端发送的字符串信息;计算字符串的长度;将计算的结果通过Socket发送给客户端。
4.2.2 UDP部分
1.实验要求利用JAVA语言编写基于UDP的字符串逆序转换的网络应用程序,需要了解下面相关知识:
1)UDP基于字节流传输的基本原理;
2)Socket的相关知识;
3) Java编程基础,Java下的DatagramSocket类的方法。
2.基于UDP的Socket编程,需要完成客户端和服务器两部分的程序设计。在代码开发之前,需要对网络层应用的协议进行详细设计,本实验的应用层协议设计如下:
(1)协议的格式:ACSII码字符,回车作为消息的结束。
(2)协议的工作原理
(2-1)客户端:从标准键盘中读入一行字符,通过Socket发送到服务器;收到服务器反馈的信息,将信息显示在标准输出屏幕上;关闭连接。
(2-2)服务器端:从Socket中读出客户端发送的字符串信息;进行逆序转换;将转换的结果通过Socket发送给客户端。
4.3 实验步骤
4.3.1 TCP部分
1.画好实现代码的流程图:
S
Server
(running on hostid)
Create socket port = x,
for incoming request:
welcomeSocket =
ServerSocket()
Wait for incoming connection request
connectSocket = welcomeSocket.accept()
Read request from connectionSocket
Write reply to connectionSocket
Close connectionSocket
Client
Create socket connectied to hosted,port = x clientSocket = Socket()
Send request using clientSocket
Read reply from clientSocket
Close clientSocket
TCP
connection setup
2.编写TCPServer.java
import java.io.*;
import .*;
class TCPServer {
public static void main(String argv[]) throws Exception {
String clientSentence;
String sentenceLength;
ServerSocket welcomeSocket = new ServerSocket(6789);
while(true)
显示全部