JAVASE_网络编程下
来源:互联网 发布:括号匹配的检验算法 编辑:程序博客网 时间:2024/06/07 00:50
package 网络编程.TCP编程;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.Socket;public class TCPClient {public static void main(String[] args) throws Exception {Socket s = new Socket("127.0.0.1", 10000);/*InputStream in = s.getInputStream();OutputStream out = s.getOutputStream();out.write("你好服务器!".getBytes());byte[] buf = new byte[1024];int len = in.read(buf);System.out.println(new String(buf, 0, len));*//* * in.close(); out.close(); */new Thread(new ClientRec(s)).start();new Thread(new ClientSend(s)).start();}}class ClientRec implements Runnable {private Socket s;public ClientRec(Socket s) {this.s = s;}@Overridepublic void run() {while (true) {try {InputStream in = s.getInputStream();byte[] buff = new byte[1024];int len;while ((len = in.read(buff)) > 0) {System.out.println(new String(buff, 0, len));}} catch (IOException e) {// TODO Auto-generated catch blockthrow new RuntimeException("客户端发送程序出现异常");} finally {try {s.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}class ClientSend implements Runnable {private Socket s;public ClientSend(Socket s) {this.s = s;}public void run() {while (true) {try {OutputStream out = s.getOutputStream();BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String line=null;while((line = br.readLine())!=null){if("886".equals(line))break;out.write(line.getBytes());}} catch (Exception e) {throw new RuntimeException("客户端发送出现问题");}finally{try {s.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}
package 网络编程.TCP编程;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class TCPServer {public static void main(String[] args) throws Exception {ServerSocket ss = new ServerSocket(10000);Socket s = ss.accept();/* * byte[] buf = new byte[1024]; * * InputStream in = s.getInputStream(); * * int len = in.read(buf);//返回len,传送过来的字节数组的长度 * * System.out.println(new String(buf,0,len)); * * OutputStream out =s.getOutputStream(); * * out.write("哥们收到,你也好!".getBytes()); * * s.close(); ss.close(); */ServerSend serSend = new ServerSend(s);ServerReceiver sr = new ServerReceiver(s);new Thread(serSend).start();new Thread(sr).start();}}class ServerSend implements Runnable {private Socket s;public ServerSend(Socket s) {this.s = s;}@Overridepublic void run() {// 发送线程while (true) {try {OutputStream out = s.getOutputStream();// 读入数据BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String line = null;while ((line = br.readLine()) != null) {if ("886".equals(line))break;out.write(line.getBytes());}} catch (Exception e) {throw new RuntimeException("服务端输入异常");} finally {try {s.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}class ServerReceiver implements Runnable {private Socket s;public ServerReceiver(Socket s) {this.s = s;}@Overridepublic void run() {while (true) {try {InputStream in = s.getInputStream();byte[] buff = new byte[1024];int len;while ((len = in.read()) > 0) {String line = new String(buff, 0, len);System.out.println("服务器接收端:" + line);}} catch (Exception e) {// TODO Auto-generated catch blockthrow new RuntimeException("服务端读取发送异常");} finally {try {s.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}
package 网络编程.TCP编程;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileReader;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.Socket;public class TCP上传文件Client {public static void main(String[] args) throws Exception {Socket s = new Socket("127.0.0.1", 10006);BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));BufferedReader bin = new BufferedReader(new FileReader("d://client.txt"));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));String line;while((line = bin.readLine()) != null){bw.write(line);bw.newLine();bw.flush();}s.shutdownOutput();String inLine;while((inLine = br.readLine())!=null){System.out.println(inLine);}s.shutdownInput();bin.close();bw.close();br.close();s.close();}}
package 网络编程.TCP编程;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.Socket;//此服务端存在局限性:若多个客户端上传文件时,只能单次处理一个文件,剩余的客户端只等待public class TCP上传文件Server {public static void main(String[] args) throws Exception {ServerSocket ss = new ServerSocket(10005);while(true){Socket s = ss.accept();String ip = s.getInetAddress().getHostAddress();System.out.println(ip + "....is connected!");BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));BufferedWriter bwFile = new BufferedWriter(new FileWriter("d://Server.txt"));String line;while ((line = br.readLine()) != null) {bwFile.write(line);bwFile.newLine();bwFile.flush();}bw.write("服务端接收完毕!");bw.flush();s.shutdownOutput();bw.close();bwFile.close();s.close();// ss.close();}}}
package 网络编程.TCP编程;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.Socket;public class Tcp上传文件Server并发 {public static void main(String[] args) throws Exception{ServerSocket ss = new ServerSocket(10006);while(true){Socket s = ss.accept();//阻塞式方法,来一个线程执行一个线程new Thread(new UploadFile(s)).start();}}}class UploadFile implements Runnable{private Socket s; public UploadFile(Socket s){this.s = s;}@Overridepublic void run() {int count = 1;String ip = s.getInetAddress().getHostAddress();try{System.out.println(ip + "....is connected!");BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));File file = new File("d://Server"+(count)+".txt");while(file.exists()){file = new File("d://Server"+(count++)+".txt");}BufferedWriter bwFile = new BufferedWriter(new FileWriter(file));String line;while ((line = br.readLine()) != null) {bwFile.write(line);bwFile.newLine();bwFile.flush();}bw.write("服务端接收完毕!");bw.flush();s.shutdownOutput();bw.close();bwFile.close();s.close();}catch(Exception e){throw new RuntimeException(ip+"上传失败");}{try {s.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
package 网络编程.TCP编程;import java.io.BufferedWriter;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.Socket;/** * tomcat服务器原理 * @author Administrator * */public class Tomcat服务器 {public static void main(String[] args) throws Exception{ServerSocket ss = new ServerSocket(7777);Socket s = ss.accept();String ip = s.getInetAddress().getHostAddress();System.out.println(ip+"....is connected!");BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream(),"GBK"));bw.write("<html><body>");bw.write("你好,我是服务端");bw.write("</body></html>");bw.flush();s.shutdownOutput();bw.close();s.close();ss.close();}}
package 网络编程.URL详解;import java.io.InputStream;import java.net.URL;import java.net.URLConnection;/* * String getFile() 获取此 URL 的文件名。 String getHost() 获取此 URL 的主机名(如果适用)。 String getPath() 获取此 URL 的路径部分。 int getPort() 获取此 URL 的端口号。 String getProtocol() 获取此 URL 的协议名称。 String getQuery() 获取此 URL 的查询部分。 *//** * URLConnection 的对象能使用来,做应用层的网络通信编程,也可以使用来进行服务器的压力测试 * * URLConnection对象也能使用作为应用层网络编程,是socket类的封装增强版 * @author Administrator * */public class URLTest {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {// TODO Auto-generated method stubURL url = new URL("http://localhost:8080/myweb/demo.html");URLConnection urc = url.openConnection();//打开了一个连接,在应用层打开的连接。System.out.println(urc);InputStream in = urc.getInputStream();byte[] buff = new byte[1024];int len;while((len = in.read(buff))>0){System.out.println(new String(buff,0,len));}System.out.println(url.getFile());System.out.println(url.getHost());System.out.println(url.getPath());System.out.println(url.getPort());System.out.println(url.getQuery());}}
0 0
- JAVASE_网络编程下
- JavaSE_网络编程_IP
- JavaSE_网络编程_UDP_1
- JavaSE_网络编程_UDP_2
- JavaSE_网络编程_TCP
- JAVASE_网络编程上
- JavaSE_网络编程
- JavaSE_网络编程_URL类
- JavaSE_网络编程_TCP_练习1
- 黑马程序员——javaSE_网络编程
- JavaSE_网络编程_TCP_练习2_文本文件
- JavaSE_网络编程_TCP_练习3_图片
- JAVASE_面向对象下
- JavaSE_网络编程_TCP_练习4_与浏览器和服务端交互
- 网络编程下
- Linux下网络编程
- java网络编程 下
- linux 下 网络编程
- CFormView与CView的区别
- Career Action Plan
- 深度学习资源
- (7-4)hive与外部资源的交互
- mysql安装报错 - Unable to update security settings. Access denied for user 'root'@'loca
- JAVASE_网络编程下
- EL表达式 参考手册
- MySQL命令行导出数据库:
- 8-5 以下面四个在读写器作用范围内的电子标签为例说明二进制树型搜索算法选择电子标签的迭代过程。
- python创建字典多种方式
- 1003. 我要通过!(20)
- 重拾C语言(1)
- 前四章——老师类与学生类
- (7-5)hive的web界面和JDBC模式