学习Java(88)_基于TCP的聊天程序(二)

基于TCP的聊天程序(一)中进行了改进,双方可以畅快的聊天了,不用再你一句我一句的聊了。
客户端程序
阅读全部

学习Java(87)_基于TCP的聊天程序(一)

使用基于TCP的socket编程的知识编写实现一个聊天程序,你一句我一句的交流。
客户端程序
阅读全部

学习Java(86)_空指针异常的问题

有时候,在try中实例化一个对象,但在try、catch之外使用该对象时,会抛出一个空指针异常的错误,即:NullPointerException。解决这个问题的方法也非常简单,在try中实例化对象之前,在try之外先定义一个该类型的引用,令该引用为null即可。如下例:

阅读全部

学习Java(85)_基于TCP的socket编程_客户端程序编写

客户端程序编写:
1、调用 Socket() 创建一个客户端套接字,该套接字会自动向服务器端发送连接请求;
2、调用Socket类的getInputStream()和getOutputStream()获取输出流和输入流,开始网络数据的发送和接收。
3、最后关闭通信套接字。
阅读全部

学习Java(84)_基于TCP的socket编程_服务器程序编写

服务器程序编写:
1、调用 ServerSocket( int port ) 创建一个服务器端套接字,并绑定到指定的端口上。
2、调用 accept(),监听链接请求,如果客户端请求链接,则接受链接,并返回和客户端匹配的套接字。
3、调用 Socket 类的 getOutputStream() 和 getInputStream 获取输出流和输入流,开始网络数据的发送和接受。
3、最后关闭通信套接字。
阅读全部

学习Java(83)_基于UDP的socket编程_发送端程序

发送端程序编写:
1、调用 DatagramSocket() 创建一个数据报套接字;
2、调用 DatagramPacket( byte[] buf, int offset, int length, InetAddress address, int port );
3、调用 DatagramSocket 类的 send(),发送UDP包。
4、最后关闭数据报套接字。
发送端程序编写代码如下:
阅读全部

学习Java(82)_基于UDP的socket编程_接收端程序

基于UDP的socket编程步骤
1、定义一个 DatagramSocket 对象 ds 。
2、定义 DatagramPacket 对象 dp 。
3、使用 dp ,接收对方发过来的数据( ds.receive( dp ) );
或者 把数据发送给对方( ds.send( dp ) )。
4、关闭(ds.close())。
接收端程序演示:
阅读全部

学习Java(81)_使用反射调用成员属性

类中的属性一定要在本类实例化对象产生之后成才可以分配内存空间,在class类中提供取得成员的方法。
取得全部成员:
public Field[] getDeclaredFields() throws SecurityException
取得指定成员:
public Field getDeclaredField(String name) throws NoSuchFieldException,  SecurityException
返回的类型是 java.lang.reflect.Field 该类中有两个重要方法:
取得属性内容:
public Object get(Object obj) throws IllegalArgumentException,
阅读全部

学习Java(80)_利用反射调用成员方法

在前面几篇博文中可以知道,一个类有无参的构造方法,所以实例化对象的时候可以直接利用 Class 类中提供的 newInstance()方法。
在 Class 类里面提供有以下取得类中 Method 的操作:
取得全部方法:public Method[] getMethods() throws SecurityException
取得指定方法:public Method getMethod(String name,Class<?>... parameterTypes)
throws NoSuchMethodException, SecurityException
以上两个操作返回的是 java.lang.reflect.Method 类的对象
阅读全部

学习Java(79)_利用反射调用构造方法

在上一篇中提到了可以实例化对象的方法 .newInstance(); 但是该方法只能调用无参的构造方法,如果类中有多个构造方法,并且需要调用的是有参的构造方法,这个如何操作?
默认调用无参构造方法。
阅读全部