在javasocket网络编程中,开发基于udp协议的程序使用的套接字有哪些

Python012

在javasocket网络编程中,开发基于udp协议的程序使用的套接字有哪些,第1张

一、填空题

___ IP地址____用来标志网络中的一个通信实体的地址。通信实体可以是计算机,路由器等。

统一资源定位符URL是指向互联网“资源”的指针,由4部分组成:协议、存放资源的主机域名、__端口___和资源路径和文件名。

URL 是统一资源定位器的简称,它表示Internet上某一资源的地址。

在Socket编程中,IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用 端口来区分这些应用程序。

在Java Socket网络编程中,开发基于TCP协议的服务器端程序使用的套接字是 ServerSocket 。

在Java Socket网络编程中,开发基于UDP协议的程序使用的套接字是 DatagramSocket 。

二、选择题

1.以下协议都属于TCP/IP协议栈,其中位于传输层的协议是(AD)。(选择二项)

A TCP

B.HTTP

C.SMTP

D.UDP

2.以下协议中属于TCP/IP协议栈中应用层协议的是(A)。(选择一项)

A HTTP

B.TCP

C.UDP

D.IP

3.以下说法中关于UDP协议的说法正确的是(AD)。(选择二项)

A.发送不管对方是否准备好,接收方收到也不确认

B.面向连接

C.占用系统资源多、效率低

D.非常简单的协议,可以广播发送

4.在基于TCP网络通信模式中,客户与服务器程序的主要任务是(BC)。(选择二项)

A 客户程序在网络上找到一条到达服务器的路由

B.客户程序发送请求,并接收服务器的响应

C.服务器程序接收并处理客户请求,然后向客户发送响应结果

D.如果客户程序和服务器都会保证发送的数据不会在传输途中丢失

5.在Java网络编程中,使用客户端套接字Socket创建对象时,需要指定(A)。(选择一项)

A 服务器主机名称和端口

B.服务器端口和文件

C.服务器名称和文件

D.服务器地址和文件

6.ServerSocket的监听方法accept( )方法的返回值类型是(A )。(选择一项)

A.Socket

B.Void

C.Object

D.DatagramSocket

7.Java UDP Socket编程主要用到的两个类是(BD)。(选择二项)

A UDPSocket

B.DatagramSocket

C.UDPPacket

D.DatagramPacket

8.在使用UDP套接字通信时,常用(D)类把要发送的信息打包。(选择一项)

A String

B.DatagramSocket

C.MulticastSocket

D.DatagramPacket

三、判断题

1. Socket是传输层供给应用层的编程接口,是应用层与传输层之间的桥梁 。( T )

2. TCP/IP传输控制协议是Internet的主要协议,定义了计算机和外设进行通信的规则。TCP/IP网络参考模型包括七个层次:应用层、会话层、表示层、传输层、网络层、链路层和物理层。( F )

3. TCP协议一种面向连接的、可靠的、基于字节流的通信协议 。HTTP、FTP、TELNET、SMTP 都是基于TCP协议的应用层协议。( T )

4. UDP协议是一种面向无连接的、可靠的、基于字节流的传输层通信协议,该协议占用系统资源多、效率较低。( F )

四、简答题

1.TCP/IP协议栈中,TCP协议和UDP协议的联系和区别?

2.简述基于TCP的Socket编程的主要步骤。提示:分别说明服务器端和客户端的编程步骤。

3.简述基于UDP的Socket编程的主要步骤。提示:分别说明服务器端和客户端的编程步骤。

五、编码题

1.使用基于TCP的Java Socket编程,完成如下功能:

1) 要求从客户端录入几个字符,发送到服务器端。

2) 由服务器端将接收到的字符进行输出。

3) 服务器端向客户端发出“您的信息已收到”作为响应。

4) 客户端接收服务器端的响应信息。

提示:

服务器端:PrintWriter out =new PrintWriter(socket.getOutputStream(),true)

客户端:BufferedReader line=new BufferedReader(new InputStreamReader(System.in))

Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一。如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的。本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序。

方法/步骤

Java中的socket编程 下面的部分将通过一些示例讲解一下如何使用socket编写客户端和服务器端的程序。 注意:在接下来的示例中,我将使用基于TCP/IP协议的socket编程,因为这个协议远远比UDP/IP使用的要广泛。并且所有的socket相关的类都位于java.net包下,所以在我们进行socket编程时需要引入这个包。

写入数据 接下来就是写入请求数据,我们从客户端的socket对象中得到OutputStream对象,然后写入数据后。很类似文件IO的处理代码。

打开服务器端的socket

读取数据 通过上面得到的socket对象获取InputStream对象,然后安装文件IO一样读取数据即可。这里我们将内容打印出来。

使用socket实现一个回声服务器,就是服务器会将客户端发送过来的数据传回给客户端。

改一下

scan.nextLine()//阻塞,排除是socket建立太慢导致的

String str=null

这两行删除,没用

str=br.readLine()

这个改成

br=scan.readLine()

然后你再试一下

顺便再说一下,这个程序我写过,我开始想的也是客户端发送的数据服务器端可以实时接收,但是我发现我错了,因为Scanner 的阻塞,如果客户端发送消息服务器端必须也得发送一个消息才能收到,这个内容可以是任意内容,比如一个回车,如果想让客户端 或服务器端可以实时接收到消息,在控制台中是不可能实现的,除非使用swing框架,一个文本框负负责发送,一个文本框负责接收,不过听他们说swing现在企业中根本不用了,所有我也就没有深入研究,劝你也放弃吧,研究这个没什么用,除非你能在网页上实现,或者做一个程序,至于我写的源码,如果你要我可以发给你

对了再说下你这个问题出现的原因

你这个是因为循环中没有阻塞语句,而且br没有接收到值,所有它会一直打印null