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
原创粉丝点击