《Java基础⼊门第2版》--⿊马程序员课后答案及其详解第11章⽹络编程
⽂章⽬录
⼀、填空题
1、⾯向连接、客户端、服务器端
2、2、0-65535
3、链路层、⽹络层、运输层、应⽤层
4、InetAddress
5、DatagramPacket、DatagramSocket
⼆、判断题
黑马程序员前端全套视频1、错
2、对
3、对
4、错
5、对
三、选择题
1、C
2、ABD 3.、A 4、B 5、C
四、简答题
1、在Internet中传输数据都需要遵守⼀定的规则,这种规则通常被称作⽹络通信协议。⽹络通信协议对数据传输格式、传输速率、传输步骤等作了统⼀规定,通信双⽅必须共同遵守这个规定才能完成数据的交互。到⽬前为⽌,⽹络通信协议已经有很多种,其中TCP/IP协议在世界范围内应⽤最为⼴泛。
2、UDP协议是⽆连接通信协议,所谓的⽆连接就是指数据的发送端和接收端不建⽴逻辑连接。由于UDP协议消耗资源⼩,通信效率⾼,通常都会⽤于⾳频、视频和普通数据的传输。UDP协议在传输数
据时不能保证数据的完整性,因此在传输重要数据时不建议使⽤UDP协议。TCP协议是⾯向连接的通信协议,即在传输数据前先在发送端和接收端建⽴逻辑连接,然后再传输数据,它提供了两台计算机之间可靠⽆差错的数据传输。在TCP连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握⼿”。
3、ServerSocket类⽤于创建服务端程序,通过调⽤ServerSocket对象的accept()⽅法,接收来⾃客户端的请求。
Socket类⽤于创建客户端程序,当客户端和服务端的两个Socket建⽴了专线连接后,连接的⼀端既能向另⼀端连续写⼊字节,也能从另⼀端读取字节。Socket类中定义了getInputStream()⽅法返回Socket的输⼊流对象,定义了getOutputStream()⽅法返回Socket的输出流对象。只要连接的⼀端向该输出流对象写⼊了数据,连接的另⼀端就能从其输⼊流对象中读取到。
五、编程题
1、
接收端:
import java.*;
public class Receiver {
public static void main(String[] args)throws Exception {
byte[] buf =new byte[1024];
DatagramSocket ds =new DatagramSocket(8001);
DatagramPacket dp =new DatagramPacket(buf,1024);
String str =new Data(),0, dp.getLength());
System.out.println(str);
ds.close();
}
}
发送端:
import java.*;
public class Send {
public static void main(String[] args)throws Exception {
DatagramSocket ds =new DatagramSocket(3000);
String str ="hello world";
DatagramPacket dp =new Bytes(), str.length(), ByName("localhost"),8001);
ds.send(dp);
ds.close();
}
}
2.服务端
import java.io.*;
import java.*;
public class Server {
public static void main(String[] args)throws Exception {
new TCPServer().listen();
}
}
class TCPServer {
public void listen()throws Exception {
ServerSocket serverSocket =new ServerSocket(8002);
Socket client = serverSocket.accept();
OutputStream os = OutputStream();
os.write(("hello world").getBytes());
Thread.sleep(5000);
os.close();
client.close();
}
}
客户端
import java.io.*;
import java.*;
public class Client {
public static void main(String[] args)throws Exception {
new TCPClient().connect();
}
}
class TCPClient {
public void connect()throws Exception {
Socket client =new LocalHost(),8002);
InputStream is = InputStream();
byte[] buf =new byte[1024];
int len = is.read(buf);
System.out.println(new String(buf,0, len));
client.close();
}
}
六、原题及其解析
暂⽆。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论