Socket里面参数必须为IP地址+端口号java.net.UnknownHostException
报错显示:
C:\Users\wenjrg\Desktop\2019.5.14>java ClickTest
Exception in thread "main" java.net.UnknownHostException: a
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
at java.net.InetAddress.getAllByName0(InetAddress.java:1276)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at java.net.InetAddress.getByName(InetAddress.java:1076)
at ClickTest.main(ClickTest.java:11)
用Socket实现简单账号密码登录
1. 实现客户端
1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 import java.io.PrintWriter; 5 import java.net.*; 6 7 public class ClickTest { 8 //模拟用户登录 9 public static void main(String[] args) throws IOException { 10 //创建socket对象 11 Socket s=new Socket(InetAddress.getByName("127.0.0.1"),8888); 12 //Socket s=new Socket("itheima",8888); 13 //获取用户名和密码 14 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 15 System.out.println("请输入用户名:"); 16 String username=br.readLine(); 17 System.out.println("请输入密码:"); 18 String password=br.readLine(); 19 //获取输出流对象(换行) 20 PrintWriter out=new PrintWriter(s.getOutputStream(),true); 21 //写出数据 22 out.println(username); 23 out.println(password); 24 //获取输入流对象 25 BufferedReader serverBr=new BufferedReader(new InputStreamReader(s.getInputStream())); 26 //获取服务器返回的数据 27 String result=serverBr.readLine(); 28 System.out.println(result); 29 //释放 30 s.close(); 31 32 } 33 34 }
2.服务端
1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 import java.io.PrintWriter; 5 import java.net.ServerSocket; 6 import java.net.Socket; 7 8 public class ServerTest { 9 10 public static void main(String[] args) throws IOException { 11 //创建服务器端socket对象 12 ServerSocket ss=new ServerSocket(8888); 13 //监听 14 Socket s=ss.accept(); 15 //获取输入流对象 16 BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream())); 17 //判断用户名和密码是否正确 18 String username=br.readLine(); 19 String password=br.readLine(); 20 //返回判断信息 21 boolean flag=false; 22 if("a".equals(username)&&"1234".equals(password)){ 23 flag=true; 24 } 25 PrintWriter out=new PrintWriter(s.getOutputStream(),true); 26 27 if(flag){ 28 out.println("登陆成功"); 29 }else{ 30 out.println("登录失败"); 31 } 32 //释放资源 33 s.close(); 34 //ss.close() 服务器不关闭 35 36 } 37 38 }
分类:
Java报错以及解决办法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)