网络编程3--毕向东java基础教程视频学习笔记
2017-03-12 16:45
1076 查看
转载地址http://www.cnblogs.com/wsw-tcsygrwfqd/p/5136531.html
Day24
01 TCP上传图片
02 客户端并发上传图片
03 客户端并发登录
04 浏览器客户端-自定义服务端
05 浏览器客户端-Tomcat服务端
01 TCP上传图片
02 客户端并发上传图片
服务端如果只有当为一个客户端服务完成后,才能为别的客户端服务,效率就太低了,所以服务端需要采用多线程。
一个客户端请求连接,服务端就开启一个线程为他服务。这样可以实现客户端并发上传图片。
实现代码如下:
03 客户端并发登录
客户端通过键盘录入用户名,服务端对这个用户名进行校验。
如果该用户存在,在服务端显示XXX,已登录。
并在客户端显示,XXX欢迎登陆。
如果该用户不存在,在服务端显示XXX,尝试登陆。
并在客户端显示,XXX,该用户不存在。
最多只能尝试登陆三次。
04 浏览器客户端-自定义服务端
演示客户端和服务端
客户端:浏览器
服务器:自定义
不过用telnet当做客户端实验时,我计算机可能没用这个应用,就没有成功。
运行显示:
D:\abc>telnet 127.0.0.1 11000
'telnet' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
05 浏览器客户端-Tomcat服务端
客户端:浏览器
服务端:Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,
在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,
可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。
实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,
所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
简要介绍我安装Tomcat的过程。
1.下载。
官方下载网址为:http://tomcat.apache.org/
选择DownLoad--Tomcat6.0-32-bit/64-bit Windows Service Installer(pgp,md5)
这个版本直接点击就可以安装。如果不需要改变安装路径,直接选择下一步就可以了。
2.环境设置。
变量名:JAVA-HOME
变量值:SDK路径。
3.启动
启动Tomcat我们可以直接运行bin目录下的 Tomcat6.exe 可执行文件。
在启动完成以后在浏览器中输入:http://127.0.0.1:8080 .显示如下
在D:\tomcat\webapps路径下新建文件夹myWeb,再在此文件夹中新建文件Demo.html.
文件内容:
在浏览器中输入http://127.0.0.1:8080/myWeb/Demo.html,显示如下:
Day24
01 TCP上传图片
02 客户端并发上传图片
03 客户端并发登录
04 浏览器客户端-自定义服务端
05 浏览器客户端-Tomcat服务端
01 TCP上传图片
02 客户端并发上传图片
服务端如果只有当为一个客户端服务完成后,才能为别的客户端服务,效率就太低了,所以服务端需要采用多线程。
一个客户端请求连接,服务端就开启一个线程为他服务。这样可以实现客户端并发上传图片。
实现代码如下:
03 客户端并发登录
客户端通过键盘录入用户名,服务端对这个用户名进行校验。
如果该用户存在,在服务端显示XXX,已登录。
并在客户端显示,XXX欢迎登陆。
如果该用户不存在,在服务端显示XXX,尝试登陆。
并在客户端显示,XXX,该用户不存在。
最多只能尝试登陆三次。
04 浏览器客户端-自定义服务端
演示客户端和服务端
客户端:浏览器
服务器:自定义
不过用telnet当做客户端实验时,我计算机可能没用这个应用,就没有成功。
运行显示:
D:\abc>telnet 127.0.0.1 11000
'telnet' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
05 浏览器客户端-Tomcat服务端
客户端:浏览器
服务端:Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,
在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,
可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。
实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,
所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
简要介绍我安装Tomcat的过程。
1.下载。
官方下载网址为:http://tomcat.apache.org/
选择DownLoad--Tomcat6.0-32-bit/64-bit Windows Service Installer(pgp,md5)
这个版本直接点击就可以安装。如果不需要改变安装路径,直接选择下一步就可以了。
2.环境设置。
变量名:JAVA-HOME
变量值:SDK路径。
3.启动
启动Tomcat我们可以直接运行bin目录下的 Tomcat6.exe 可执行文件。
在启动完成以后在浏览器中输入:http://127.0.0.1:8080 .显示如下
在D:\tomcat\webapps路径下新建文件夹myWeb,再在此文件夹中新建文件Demo.html.
文件内容:
在浏览器中输入http://127.0.0.1:8080/myWeb/Demo.html,显示如下:
Day24
01 TCP上传图片
02 客户端并发上传图片
03 客户端并发登录
04 浏览器客户端-自定义服务端
05 浏览器客户端-Tomcat服务端
01 TCP上传图片
1 import java.net.*; 2 import java.io.*; 3 class PicClient 4 { 5 public static void main(String[] args) throws Exception 6 { 7 Socket s=new Socket("127.0.0.1",10007); 8 FileInputStream fis=new FileInputStream("E:\\图\\素材\\头像.jpg"); 9 OutputStream os=s.getOutputStream(); 10 byte[] buf=new byte[1024*16]; 11 int len; 12 while((len=fis.read(buf))!=-1) 13 { 14 os.write(buf,0,len); 15 } 16 //告诉服务器数据写入完毕 17 s.shutdownOutput(); 18 InputStream is=s.getInputStream(); 19 byte[] bufIn=new byte[1024]; 20 int num=is.read(bufIn); 21 System.out.println(new String(bufIn,0,num)); 22 23 fis.close(); 24 s.close(); 25 26 } 27 } 28 class PicServer 29 { 30 public static void main(String[] args) throws Exception 31 { 32 ServerSocket ss=new ServerSocket(10007); 33 Socket s=ss.accept(); 34 System.out.println(s.getInetAddress().getHostAddress()+"......connected"); 35 InputStream in=s.getInputStream(); 36 byte[] buf=new byte[1024*16]; 37 FileOutputStream fos=new FileOutputStream("touxiang.jpg"); 38 int len; 39 while((len=in.read())!=-1) 40 { 41 fos.write(buf,0,len); 42 } 43 PrintWriter out=new PrintWriter(s.getOutputStream(),true); 44 out.println("图片上传成功!"); 45 46 fos.close(); 47 s.close(); 48 ss.close(); 49 50 } 51 }
02 客户端并发上传图片
服务端如果只有当为一个客户端服务完成后,才能为别的客户端服务,效率就太低了,所以服务端需要采用多线程。
一个客户端请求连接,服务端就开启一个线程为他服务。这样可以实现客户端并发上传图片。
实现代码如下:
1 /* 2 3 */ 4 import java.net.*; 5 import java.io.*; 6 class PicClient 7 { 8 public static void main(String[] args) throws Exception 9 { 10 //判断要上传的文件是否符合要求,不符合则结束运行 11 File file=new File(args[0]); 12 if(args.length!=1) 13 { 14 System.out.println("请上传一个文件,而不是多个!"); 15 return; 16 } 17 if(!(file.exists() && file.isFile())) 18 { 19 System.out.println("文件不存在,或者文件有问题。"); 20 return; 21 } 22 if(!(file.getName().endsWith(".png"))) 23 { 24 System.out.println("请上传一个png格式的文件。"); 25 return; 26 } 27 if(file.length()>1024*9) 28 { 29 System.out.println("上传文件大小超过允许范围!"); 30 return; 31 } 32 33 //建立Socket服务 34 Socket s=new Socket("172.29.115.1",10008); 35 //读取一个图片文件 36 FileInputStream fis=new FileInputStream(file); 37 byte[] buf=new byte[1024*9]; 38 OutputStream out=s.getOutputStream(); 39 int len=0; 40 //写入socket输出流中 41 while((len=fis.read(buf))!=-1) 42 { 43 out.write(buf,0,len); 44 45 } 46 //给服务端一个信号,客户端输出结束 47 s.shutdownOutput(); 48 49 //接受服务端的回馈信息 50 InputStream in=s.getInputStream(); 51 byte[] b=new byte[1024]; 52 int num=in.read(b); 53 System.out.println("server:"+new String(b,0,num)); 54 55 //关闭资源 56 fis.close(); 57 s.close(); 58 59 60 } 61 } 62 class PicServerThread implements Runnable 63 { 64 private Socket s; 65 public PicServerThread(Socket s) 66 { 67 this.s=s; 68 } 69 public void run() 70 { 71 try 72 { 73 int count=1; 74 String ip=new String(s.getInetAddress().getHostAddress()+""); 75 System.out.println(ip+"......connected"); 76 File file=new File(ip+"("+count+")"); 77 //如果文件名已经存在,通过增加序号,定义新名字 78 //循环进行判断,直到找到没用过的文件名 79 while(file.exists()) 80 file=new File(ip+"("+(count++)+")"+".png"); 81 82 InputStream in=s.getInputStream(); 83 FileOutputStream fos=new FileOutputStream(file); 84 85 byte[] buf=new byte[1024*9]; 86 int len; 87 //读取数据并写入到文件中 88 while((len=in.read(buf))!=-1) 89 { 90 fos.write(buf,0,len); 91 } 92 93 //向客户端发送提示信息 94 PrintWriter pw=new PrintWriter(s.getOutputStream(),true); 95 pw.println("上传成功!"); 96 97 //关闭资源 98 fos.close(); 99 s.close(); 100 101 102 103 } 104 catch (Exception e) 105 { 106 throw new RuntimeException("服务建立失败!"); 107 } 108 109 } 110 111 112 } 113 class PicServer 114 { 115 public static void main(String[] args) throws Exception 116 { 117 118 //建立服务 119 ServerSocket ss=new ServerSocket(10008); 120 while(true) 121 { 122 //接收客户端端口 123 Socket s=ss.accept(); 124 new Thread(new PicServerThread(s)).start(); 125 126 } 127 128 } 129 }
03 客户端并发登录
客户端通过键盘录入用户名,服务端对这个用户名进行校验。
如果该用户存在,在服务端显示XXX,已登录。
并在客户端显示,XXX欢迎登陆。
如果该用户不存在,在服务端显示XXX,尝试登陆。
并在客户端显示,XXX,该用户不存在。
最多只能尝试登陆三次。
1 import java.net.*; 2 import java.io.*; 3 class LoginClient 4 { 5 public static void main(String[] args)throws Exception 6 { 7 //建立服务 8 Socket s=new Socket("127.0.0.1",10008); 9 //获得键盘录入 10 BufferedReader bufr= 11 new BufferedReader(new InputStreamReader(System.in)); 12 //获得socket对应的输出流,设置为自动刷新 13 PrintWriter out=new PrintWriter(s.getOutputStream(),true); 14 15 //获得socket对应的输入流 16 BufferedReader in= 17 new BufferedReader(new InputStreamReader(s.getInputStream())); 18 //最多只能尝试登陆三次 19 for(int x=0;x<3;x++) 20 { 21 String name=bufr.readLine(); 22 //如果键盘录入为空(按下CTRL+C),循环结束 23 if(name==null) 24 break; 25 out.println(name); 26 String info=in.readLine(); 27 System.out.println("server:"+info); 28 //如果验证成功,循环结束 29 if(info.contains("欢迎")) 30 break; 31 } 32 //关闭资源 33 bufr.close(); 34 s.close(); 35 36 } 37 } 38 class UserThread implements Runnable 39 { 40 private Socket s; 41 public UserThread(Socket s) 42 { 43 this.s=s; 44 } 45 public void run() 46 { 47 try 48 { 49 //获取客户端ip 50 String ip=s.getInetAddress().getHostAddress(); 51 System.out.println(ip+"......connected."); 52 //服务器最多提供三次验证服务 53 for(int i=0;i<3;i++) 54 { 55 BufferedReader in= 56 new BufferedReader(new InputStreamReader(s.getInputStream())); 57 //为读取服务器端的用户文件,建立输入流 58 BufferedReader bufr=new BufferedReader(new FileReader("user.txt")); 59 PrintWriter out=new PrintWriter(s.getOutputStream(),true); 60 //设置标志位,以便确定服务器需做出什么样的的动作 61 boolean flag=false; 62 String line=null; 63 String name=in.readLine(); 64 if(name==null) 65 break; 66 while((line=bufr.readLine())!=null) 67 { 68 if(name.equals(line)) 69 { 70 //如果在服务器的用户文件中找到客户输入的登录名 71 //改变标志位,结束循环 72 flag=true; 73 break; 74 } 75 } 76 //根据标志位不同,服务器做出不同动作 77 if(flag) 78 { 79 System.out.println(name+"已经登录"); 80 out.println(name+"欢迎登陆!"); 81 break; 82 } 83 else 84 { 85 System.out.println(name+"尝试登录"); 86 out.println(name+",抱歉,用户名不存在!"); 87 } 88 89 90 } 91 //关闭资源 92 s.close(); 93 } 94 catch (Exception e) 95 { 96 e.printStackTrace(); 97 } 98 } 99 100 101 } 102 class LoginServer 103 { 104 public static void main(String[] args)throws Exception 105 { 106 //建立服务器端 107 ServerSocket ss=new ServerSocket(10008); 108 while(true) 109 { 110 //循环接收客户请求 111 Socket s=ss.accept(); 112 //为客户开启一个线程 113 new Thread(new UserThread(s)).start(); 114 } 115 116 } 117 }
04 浏览器客户端-自定义服务端
演示客户端和服务端
客户端:浏览器
服务器:自定义
1 import java.net.*; 2 import java.io.*; 3 class ServerDemo 4 { 5 public static void main(String[] args) throws Exception 6 { 7 ServerSocket ss=new ServerSocket(11000); 8 Socket s=ss.accept(); 9 System.out.println(s.getInetAddress().getHostAddress()); 10 PrintWriter out=new PrintWriter(s.getOutputStream(),true); 11 out.println("<font color='blue' size=8>客户端你好!</font>"); 12 s.close(); 13 ss.close(); 14 } 15 }
不过用telnet当做客户端实验时,我计算机可能没用这个应用,就没有成功。
运行显示:
D:\abc>telnet 127.0.0.1 11000
'telnet' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
05 浏览器客户端-Tomcat服务端
客户端:浏览器
服务端:Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,
在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,
可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。
实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,
所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
简要介绍我安装Tomcat的过程。
1.下载。
官方下载网址为:http://tomcat.apache.org/
选择DownLoad--Tomcat6.0-32-bit/64-bit Windows Service Installer(pgp,md5)
这个版本直接点击就可以安装。如果不需要改变安装路径,直接选择下一步就可以了。
2.环境设置。
变量名:JAVA-HOME
变量值:SDK路径。
3.启动
启动Tomcat我们可以直接运行bin目录下的 Tomcat6.exe 可执行文件。
在启动完成以后在浏览器中输入:http://127.0.0.1:8080 .显示如下
在D:\tomcat\webapps路径下新建文件夹myWeb,再在此文件夹中新建文件Demo.html.
文件内容:
1 <html> 2 <body> 3 <h1>这是我的主页</h1> 4 <font size=8 color=blue>欢迎登陆</font> 5 <div> 6 锦瑟无端五十弦,</br> 7 一弦一柱思华年。</br> 8 庄生晓梦迷蝴蝶,</br> 9 望帝春心托杜鹃。</br> 10 沧海月明珠有泪。</br> 11 蓝田日暖玉生烟,</br> 12 此情可待成追忆。</br> 13 只是当时已惘然。</br> 14 15 16 </div> 17 </body> 18 </html>
在浏览器中输入http://127.0.0.1:8080/myWeb/Demo.html,显示如下:
Day24
01 TCP上传图片
02 客户端并发上传图片
03 客户端并发登录
04 浏览器客户端-自定义服务端
05 浏览器客户端-Tomcat服务端
01 TCP上传图片
1 import java.net.*; 2 import java.io.*; 3 class PicClient 4 { 5 public static void main(String[] args) throws Exception 6 { 7 Socket s=new Socket("127.0.0.1",10007); 8 FileInputStream fis=new FileInputStream("E:\\图\\素材\\头像.jpg"); 9 OutputStream os=s.getOutputStream(); 10 byte[] buf=new byte[1024*16]; 11 int len; 12 while((len=fis.read(buf))!=-1) 13 { 14 os.write(buf,0,len); 15 } 16 //告诉服务器数据写入完毕 17 s.shutdownOutput(); 18 InputStream is=s.getInputStream(); 19 byte[] bufIn=new byte[1024]; 20 int num=is.read(bufIn); 21 System.out.println(new String(bufIn,0,num)); 22 23 fis.close(); 24 s.close(); 25 26 } 27 } 28 class PicServer 29 { 30 public static void main(String[] args) throws Exception 31 { 32 ServerSocket ss=new ServerSocket(10007); 33 Socket s=ss.accept(); 34 System.out.println(s.getInetAddress().getHostAddress()+"......connected"); 35 InputStream in=s.getInputStream(); 36 byte[] buf=new byte[1024*16]; 37 FileOutputStream fos=new FileOutputStream("touxiang.jpg"); 38 int len; 39 while((len=in.read())!=-1) 40 { 41 fos.write(buf,0,len); 42 } 43 PrintWriter out=new PrintWriter(s.getOutputStream(),true); 44 out.println("图片上传成功!"); 45 46 fos.close(); 47 s.close(); 48 ss.close(); 49 50 } 51 }
02 客户端并发上传图片
服务端如果只有当为一个客户端服务完成后,才能为别的客户端服务,效率就太低了,所以服务端需要采用多线程。
一个客户端请求连接,服务端就开启一个线程为他服务。这样可以实现客户端并发上传图片。
实现代码如下:
1 /* 2 3 */ 4 import java.net.*; 5 import java.io.*; 6 class PicClient 7 { 8 public static void main(String[] args) throws Exception 9 { 10 //判断要上传的文件是否符合要求,不符合则结束运行 11 File file=new File(args[0]); 12 if(args.length!=1) 13 { 14 System.out.println("请上传一个文件,而不是多个!"); 15 return; 16 } 17 if(!(file.exists() && file.isFile())) 18 { 19 System.out.println("文件不存在,或者文件有问题。"); 20 return; 21 } 22 if(!(file.getName().endsWith(".png"))) 23 { 24 System.out.println("请上传一个png格式的文件。"); 25 return; 26 } 27 if(file.length()>1024*9) 28 { 29 System.out.println("上传文件大小超过允许范围!"); 30 return; 31 } 32 33 //建立Socket服务 34 Socket s=new Socket("172.29.115.1",10008); 35 //读取一个图片文件 36 FileInputStream fis=new FileInputStream(file); 37 byte[] buf=new byte[1024*9]; 38 OutputStream out=s.getOutputStream(); 39 int len=0; 40 //写入socket输出流中 41 while((len=fis.read(buf))!=-1) 42 { 43 out.write(buf,0,len); 44 45 } 46 //给服务端一个信号,客户端输出结束 47 s.shutdownOutput(); 48 49 //接受服务端的回馈信息 50 InputStream in=s.getInputStream(); 51 byte[] b=new byte[1024]; 52 int num=in.read(b); 53 System.out.println("server:"+new String(b,0,num)); 54 55 //关闭资源 56 fis.close(); 57 s.close(); 58 59 60 } 61 } 62 class PicServerThread implements Runnable 63 { 64 private Socket s; 65 public PicServerThread(Socket s) 66 { 67 this.s=s; 68 } 69 public void run() 70 { 71 try 72 { 73 int count=1; 74 String ip=new String(s.getInetAddress().getHostAddress()+""); 75 System.out.println(ip+"......connected"); 76 File file=new File(ip+"("+count+")"); 77 //如果文件名已经存在,通过增加序号,定义新名字 78 //循环进行判断,直到找到没用过的文件名 79 while(file.exists()) 80 file=new File(ip+"("+(count++)+")"+".png"); 81 82 InputStream in=s.getInputStream(); 83 FileOutputStream fos=new FileOutputStream(file); 84 85 byte[] buf=new byte[1024*9]; 86 int len; 87 //读取数据并写入到文件中 88 while((len=in.read(buf))!=-1) 89 { 90 fos.write(buf,0,len); 91 } 92 93 //向客户端发送提示信息 94 PrintWriter pw=new PrintWriter(s.getOutputStream(),true); 95 pw.println("上传成功!"); 96 97 //关闭资源 98 fos.close(); 99 s.close(); 100 101 102 103 } 104 catch (Exception e) 105 { 106 throw new RuntimeException("服务建立失败!"); 107 } 108 109 } 110 111 112 } 113 class PicServer 114 { 115 public static void main(String[] args) throws Exception 116 { 117 118 //建立服务 119 ServerSocket ss=new ServerSocket(10008); 120 while(true) 121 { 122 //接收客户端端口 123 Socket s=ss.accept(); 124 new Thread(new PicServerThread(s)).start(); 125 126 } 127 128 } 129 }
03 客户端并发登录
客户端通过键盘录入用户名,服务端对这个用户名进行校验。
如果该用户存在,在服务端显示XXX,已登录。
并在客户端显示,XXX欢迎登陆。
如果该用户不存在,在服务端显示XXX,尝试登陆。
并在客户端显示,XXX,该用户不存在。
最多只能尝试登陆三次。
1 import java.net.*; 2 import java.io.*; 3 class LoginClient 4 { 5 public static void main(String[] args)throws Exception 6 { 7 //建立服务 8 Socket s=new Socket("127.0.0.1",10008); 9 //获得键盘录入 10 BufferedReader bufr= 11 new BufferedReader(new InputStreamReader(System.in)); 12 //获得socket对应的输出流,设置为自动刷新 13 PrintWriter out=new PrintWriter(s.getOutputStream(),true); 14 15 //获得socket对应的输入流 16 BufferedReader in= 17 new BufferedReader(new InputStreamReader(s.getInputStream())); 18 //最多只能尝试登陆三次 19 for(int x=0;x<3;x++) 20 { 21 String name=bufr.readLine(); 22 //如果键盘录入为空(按下CTRL+C),循环结束 23 if(name==null) 24 break; 25 out.println(name); 26 String info=in.readLine(); 27 System.out.println("server:"+info); 28 //如果验证成功,循环结束 29 if(info.contains("欢迎")) 30 break; 31 } 32 //关闭资源 33 bufr.close(); 34 s.close(); 35 36 } 37 } 38 class UserThread implements Runnable 39 { 40 private Socket s; 41 public UserThread(Socket s) 42 { 43 this.s=s; 44 } 45 public void run() 46 { 47 try 48 { 49 //获取客户端ip 50 String ip=s.getInetAddress().getHostAddress(); 51 System.out.println(ip+"......connected."); 52 //服务器最多提供三次验证服务 53 for(int i=0;i<3;i++) 54 { 55 BufferedReader in= 56 new BufferedReader(new InputStreamReader(s.getInputStream())); 57 //为读取服务器端的用户文件,建立输入流 58 BufferedReader bufr=new BufferedReader(new FileReader("user.txt")); 59 PrintWriter out=new PrintWriter(s.getOutputStream(),true); 60 //设置标志位,以便确定服务器需做出什么样的的动作 61 boolean flag=false; 62 String line=null; 63 String name=in.readLine(); 64 if(name==null) 65 break; 66 while((line=bufr.readLine())!=null) 67 { 68 if(name.equals(line)) 69 { 70 //如果在服务器的用户文件中找到客户输入的登录名 71 //改变标志位,结束循环 72 flag=true; 73 break; 74 } 75 } 76 //根据标志位不同,服务器做出不同动作 77 if(flag) 78 { 79 System.out.println(name+"已经登录"); 80 out.println(name+"欢迎登陆!"); 81 break; 82 } 83 else 84 { 85 System.out.println(name+"尝试登录"); 86 out.println(name+",抱歉,用户名不存在!"); 87 } 88 89 90 } 91 //关闭资源 92 s.close(); 93 } 94 catch (Exception e) 95 { 96 e.printStackTrace(); 97 } 98 } 99 100 101 } 102 class LoginServer 103 { 104 public static void main(String[] args)throws Exception 105 { 106 //建立服务器端 107 ServerSocket ss=new ServerSocket(10008); 108 while(true) 109 { 110 //循环接收客户请求 111 Socket s=ss.accept(); 112 //为客户开启一个线程 113 new Thread(new UserThread(s)).start(); 114 } 115 116 } 117 }
04 浏览器客户端-自定义服务端
演示客户端和服务端
客户端:浏览器
服务器:自定义
1 import java.net.*; 2 import java.io.*; 3 class ServerDemo 4 { 5 public static void main(String[] args) throws Exception 6 { 7 ServerSocket ss=new ServerSocket(11000); 8 Socket s=ss.accept(); 9 System.out.println(s.getInetAddress().getHostAddress()); 10 PrintWriter out=new PrintWriter(s.getOutputStream(),true); 11 out.println("<font color='blue' size=8>客户端你好!</font>"); 12 s.close(); 13 ss.close(); 14 } 15 }
不过用telnet当做客户端实验时,我计算机可能没用这个应用,就没有成功。
运行显示:
D:\abc>telnet 127.0.0.1 11000
'telnet' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
05 浏览器客户端-Tomcat服务端
客户端:浏览器
服务端:Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,
在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,
可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。
实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,
所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
简要介绍我安装Tomcat的过程。
1.下载。
官方下载网址为:http://tomcat.apache.org/
选择DownLoad--Tomcat6.0-32-bit/64-bit Windows Service Installer(pgp,md5)
这个版本直接点击就可以安装。如果不需要改变安装路径,直接选择下一步就可以了。
2.环境设置。
变量名:JAVA-HOME
变量值:SDK路径。
3.启动
启动Tomcat我们可以直接运行bin目录下的 Tomcat6.exe 可执行文件。
在启动完成以后在浏览器中输入:http://127.0.0.1:8080 .显示如下
在D:\tomcat\webapps路径下新建文件夹myWeb,再在此文件夹中新建文件Demo.html.
文件内容:
1 <html> 2 <body> 3 <h1>这是我的主页</h1> 4 <font size=8 color=blue>欢迎登陆</font> 5 <div> 6 锦瑟无端五十弦,</br> 7 一弦一柱思华年。</br> 8 庄生晓梦迷蝴蝶,</br> 9 望帝春心托杜鹃。</br> 10 沧海月明珠有泪。</br> 11 蓝田日暖玉生烟,</br> 12 此情可待成追忆。</br> 13 只是当时已惘然。</br> 14 15 16 </div> 17 </body> 18 </html>
在浏览器中输入http://127.0.0.1:8080/myWeb/Demo.html,显示如下:
相关文章推荐
- 网络编程2--毕向东java基础教程视频学习笔记
- 网络编程1--毕向东java基础教程视频学习笔记
- 网络编程3--毕向东java基础教程视频学习笔记
- 网络编程2--毕向东java基础教程视频学习笔记
- 网络编程4--毕向东java基础教程视频学习笔记
- 网络编程4--毕向东java基础教程视频学习笔记
- Java基础知识_毕向东_Java基础视频教程笔记(22-25 GUI 网络编程 正则)
- Java基础知识_毕向东_Java基础视频教程笔记(22-25 GUI 网络编程 正则)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(二十)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十一)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十八)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(七)
- 黑马程序员_毕向东_Java基础视频教程第十八天-IO流---学习笔记
- IO流02--毕向东JAVA基础教程视频学习笔记
- 黑马程序员_毕向东_Java基础视频教程学习笔记(八)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十二)
- 传智播客_毕向东_Java基础视频教程学习笔记(一)
- 黑马程序员_毕向东_Java基础视频教程学习笔记(十三)
- IO流01--毕向东JAVA基础教程视频学习笔记
- 黑马程序员_毕向东_Java基础视频教程学习笔记(六)