Java网络编程,定义用户类,实现序列化接口,客户端发送内容,登录注册【诗书画唱】
我和我文字的故事:开始写作的契机是我想记录我认为重要的一切!是为了不枉活过人生这一遭!是为了证明我曾存在过!
定义用户类,该类实现序列化接口,定义属性uname,pwd,
提示用户输入用户名和密码保存到对应的属性中,将内容使用对象
传入到服务器端,解析传入的用户名和密码,如果用户名是”给诗书画唱三连关注“,密码
是”给诗书画唱三连关注“,就登录成功,否则登录失败,在其基础上,判断用户名和密码是否正确,正确则服务器向客户端
发送内容,登录成功,客户端接收服务器发送的内容,错误则发送登录失败
也是由客户端进行接收服务器发送的内容

package dengLu;
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class fuWuDuan {
public static void main(String[] args) throws Exception{
fuWuDuanFangFa();
}
private static void fuWuDuanFangFa() throws
SocketException, IOException,
ClassNotFoundException {
System.out.println("UDP的服务器端开启了"
+ "用户名和密码都为"
+ "“给诗书画唱三连关注”");
DatagramSocket DatagramSocket
=new DatagramSocket(27222);
byte[] byteArray1=new byte[1024];
DatagramPacket DatagramPacket1=new
DatagramPacket(byteArray1,byteArray1.length);
DatagramSocket.receive(DatagramPacket1);
//:堵塞性的接收内容
byte[] byteArray2=DatagramPacket1.getData();
int len2=DatagramPacket1.getLength();
ByteArrayInputStream ByteArrayInputStream2=new
ByteArrayInputStream(byteArray2,0,len2);
ObjectInputStream ObjectInputStream=new
ObjectInputStream(ByteArrayInputStream2);
yongHuClass yongHuClass=(yongHuClass)
ObjectInputStream.readObject();
if(yongHuClass.uname.trim().
equals("给诗书画唱三连关注")
&&yongHuClass.pwd.trim()
.equals("给诗书画唱三连关注")){
String String="登录成功";
DatagramPacket DatagramPacket=
new DatagramPacket(String.getBytes(),
String.getBytes().length,new
InetSocketAddress("localhost",17111));
DatagramSocket.send(DatagramPacket);
}else{
String StringFalse="登录失败";
DatagramPacket DatagramPacketFalse=new DatagramPacket
(StringFalse.getBytes(),
StringFalse.getBytes().length,
new InetSocketAddress("localhost",17111));
DatagramSocket.send(DatagramPacketFalse);
}
DatagramSocket.close();
}}


package dengLu;
import java.util.*;
import java.io.*;
import java.net.*;
public class keHuDuan {
public static void main(String[] args)throws Exception {
keHuDuanFangFa();
}
private static void keHuDuanFangFa() throws
SocketException, IOException {
System.out.println("UDP的客户端开启了");
Scanner s=new Scanner(System.in);
System.out.println("请输入用户名");
String uname=s.next();
System.out.println("请输入用户密码");
String pwd=s.next();
yongHuClass yongHuClass=new yongHuClass(uname,pwd);
DatagramSocket DatagramSocket
=new DatagramSocket(17111);
ByteArrayOutputStream ByteArrayOutputStream=
new ByteArrayOutputStream();
ObjectOutputStream ObjectOutputStream=
new ObjectOutputStream(ByteArrayOutputStream);
ObjectOutputStream.writeObject(yongHuClass);
byte[] byteArray1=ByteArrayOutputStream.toByteArray();
DatagramPacket DatagramPacket1
=new DatagramPacket(byteArray1,byteArray1.length
,new InetSocketAddress("localhost",27222));
DatagramSocket.send(DatagramPacket1);
byte[] byteArray2=new byte[1024*60];
DatagramPacket DatagramPacket2=new DatagramPacket
(byteArray2,byteArray2.length);
DatagramSocket.receive(DatagramPacket2);
byte[] byteArray3=DatagramPacket2.getData();
int len3=DatagramPacket2.getLength();
String StringPrintOut=new String(byteArray3,0,len3);
System.out.println(StringPrintOut);
DatagramSocket.close();
}
}
//用户类:
class yongHuClass implements Serializable{
String uname,pwd;
public yongHuClass(String uname,String pwd){
this.uname=uname;
this.pwd=pwd;
}
@Override
public String toString() {
return "yonghu [uname=" + uname
+ ", pwd=" + pwd + "]";
}
}




