-
关闭资源为何要加一个判断条件:不为空 ??? 这是一种正确、严谨的写法。 验证非NULL是编码中很重要的一环。假如本来就是NULL,这是调用各自的close()方法是会报错的。 如果在实例化这些对象时出错导致这些对象为NULL,或是实例化没问题但中途出了什么异常导致这些对象为NULL,都会在未经验证非NULL前尝试调用close()方法关闭时报错。 p.s. 讲师写socket关闭条件时写的是if(socket!=null)socket.close();这样写没错,但我想说一般是另一种写法if(!socket.isClosed())socket.close();查看全部
-
服务端 socket.close(); serverSocket.close();是关闭服务当前客户端连接,但是服务端还在运行,IO资源不会自动释放,所以需要关闭流释放资源。 如果多个客户端连接都没有关闭资源,可能会造成内存溢出。所以最好是关闭流资源,以免造成资源浪费。 看这个: http://www.zhihu.com/question/20129467查看全部
-
//1.创建客户端Socket,指定服务器地址和端口 Socket socket=new Socket("localhost".8888); //2.获取输出流,想服务器端发送信息、 OutputStream os=socket.getOutputStream();//字节输出流 //3.将输出流包装为打印流 PrintWriter pw=new PrinrWriter(os); //4.指定输出信息 pw.write("用户名 :admin 密码 :123"); //5.调用flush()方法将缓冲输出 pw.flush(); //6.关闭输出流 socket.shutdownOutput(); //7.关闭资源 br.close(); is.close(); pw.close(); os.close(); socket.close();查看全部
-
服务器端: 1.创建ServerSocket对象,绑定监听端口 ServerSocket serverSocket = new ServerSocket(8888); 2.accept()方法返回一个Socket对象,用来监听客户端请求 Socket socket = serverSocket.accept(); 3.建立连接后,通过输入流读取客户端发送信息 4.通过输出流向客户端发送响应信息 5.关闭相关资源查看全部
-
通信过程(Socket通信模型): 1、在服务端建立一个ServerSocket,绑定相应的端口,并且在指定的端口进行侦听,等待客户端的连接。 2、当客户端创建连接Socket并且向服务端发送请求。 3、服务器收到请求,并且接受客户端的请求信息。一旦接收到客户端的连接请求后,会创建一个链接socket,用来与客户端的socket进行通信。 通过相应的输入/输出流进行数据的交换,数据的发送接收以及数据的响应等等。 4、当客户端和服务端通信完毕后,需要分别关闭socket,结束通信。 ServerSocket常用方法: ServerSocket(int port)——创建并绑定到特定端口的服务器套接字 accept()——侦听并接受到此套接字的连接 close()——关闭此套接字 getInetAddress()——得到ServerSocket对象绑定的IP地址。如果ServerSocket对象未绑定IP地址,返回0.0.0.0。 getLocalPort()——返回此套接字在其上侦听的端口 Socket常用方法: Socket(InetAddress address, int port)——创建一个套接字并将其连接到指定ip地址的指定端口号 Socket(String host, int port)——创建一个套接字并将其连接到指定主机上的指定端口号 close()——关闭此套接字 getInetAddress()——返回套接字连接的地址 getInputStream()——返回此套接字的输入流 getOutputStream——返回此套接字的输出流 Socket通信实现步骤 1.创建ServerSocket和Socket 2.打开连接到Socket的输入/输出流 3.按照协议对Socket进行读/写操作 4.关闭输入输出流、关闭Socket TCP协议是面向连接、可靠的、有序的、以字节流的方式发送数据,基于TCP协议实现网络通信的类: 客户端的Socket类 服务器端的ServerSocket类查看全部
-
为什么我们这边打开html文件百度首页的那张蹄印图片显示不出来呢? 那是因为讲师提前把需要的引用资源下载好了存在该HTML网页的同目录下。 URL(Uniform Resource Locator)统一资源定位符,表示Internet上某一资源的地址 URL由两部分组成:协议名称和资源名称,中间用冒号隔开 在java.net包中,提供了URL类来表示URL查看全部
-
1.InetAddress类没有构造方法,所以不能直接new出一个对象; 可以通过InetAddress类的静态方法获得InetAddress的对象; InetAddress.getLocalHost(); InetAddress.getByName(""); 2.类主要方法: String - address.getHostName(); String - address.getHostAddress(); public static InetAddress getByName(String host) throws UnknownHostException 在给定主机名的情况下确定主机的 IP 地址。 主机名可以是机器名(如 "java.sun.com"),也可以是其 IP 地址的文本表示形式 java.net.InetAddress类的getHostName方法用来获取某一IP地址的主机名。返回结果:此IP地址的主机名;如果安全检查不允许操作,则返回IP地址的文本表示形式。 1.如果不能立即获取主机名,程序会继续尝试一段时间,若干时间后标志为失败,然后返回IP地址。 2.由于并不是总能成功获取,因此可能会出现长时间等待的情况,这个时间大概有十几秒钟。在编写实时的网络程序时,应该注意这个问题。如果允许,尽量采用IP地址代替主机名称。 3.即使通过getHostName方法成功获取主机名称,不同的平台的主机名的格式也是不同的。在编写跨平台的网络程序时,应该注意这个问题。查看全部
-
TCP :Transmission Control Protocol 传输控制协议 IP : Internet Protocol 互联网协议 Java中的网络支持查看全部
-
JAVA中的网络支持查看全部
-
url 百度查看全部
-
java的四大网络功能 intaddress url sockets datagram查看全部
-
记下端口号查看全部
-
Java中的网络支持查看全部
-
1、多线程的优先级(死循环中注意设置优先级问题。)建议降低优先级。 2、关闭socket流,而不提倡关闭输入输出流。 3、使用tcp通信传输对象更符合面向对象编程的思想。 4、通过socket编程传输文件的功能模块是:通过io流读取文件字符流进行传输。查看全部
-
UDP客户端 1.定义服务器的地址、端口号、数据 InetAddress address = InetAddress.getByname("localhost"); int port = 8800; byte[] data = "用户名:admin;密码:123".getBytes(); 2.创建数据报,包含发送的数据信息 DatagramPacket packet = new DatagramPacket(data,data.length,adress,port); 3.创建DatagramSocket对象 DatagramSocket socket = new DatagramSocket(); 4.向服务器端发送数据报 socket.send(packet);查看全部
举报
0/150
提交
取消