ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码

黑马程序员-网络编程学习笔记(3/3)

来源:网络整理     时间:2015-10-03     关键词:循环,Exception,对象,索引,静态方法

本篇文章主要介绍了"黑马程序员-网络编程学习笔记",主要涉及到循环,Exception,对象,索引,静态方法方面的内容,对于Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: ------- android培训、java培训、期待与您交流! -----------------------------------------------...

public class Send {
	public static void main(String[] args) throws IOException {
		// 1.准备Socket
		DatagramSocket socket = new DatagramSocket();
		// 2.准备数据
		InetAddress add = InetAddress.getByName("Yang-PC");
		int port = 8888;
		byte[] byteArray = "你好,这里是使用UDP发送的数据!".getBytes();
		// 3.准备数据包:
		DatagramPacket pck = new DatagramPacket(byteArray, byteArray.length,
				add, port);
		// 4.发送数据
		socket.send(pck);

		// 5.释放资源
		socket.close();
		System.out.println("信息已发出!");
	}
}
public class Receive {
	public static void main(String[] args) throws IOException {
		DatagramSocket socket = new DatagramSocket(8888);
		byte[] byteArray = new byte[1024];
		DatagramPacket pck = new DatagramPacket(byteArray, byteArray.length);
		// 等待数据到达
		System.out.println("正在等待信息到达......");
		socket.receive(pck);// 程序在此处会阻塞
		System.out.println("有信息达到!");

		// 获取数据
		byte[] byteInfo = pck.getData();
		String str = new String(byteInfo, 0, pck.getLength());
		String ip = pck.getAddress().getHostAddress();
		System.out.println("接收到信息:IP:" + ip + " 内容:" + str);

		socket.close();
	}
}

 TCP协议_发送数据:

1.实例化一个Socket对象(指定目标计算机的IP和端口号);

2.从Socket对象中,获取一个"输出流(字节流)";

3.使用字节流,输出一个byte[]数组;

4.关闭流;

public class Send {
	public static void main(String[] args) throws IOException {
		//1.实例化一个Socket
		Socket socket = new Socket("192.168.30.241",8888);
		//2.获取输出流
		OutputStream out = socket.getOutputStream();
		//3.输出一个byte[]数组
		out.write("你好,这是使用TCP协议发送的数据......".getBytes());
		//4.关闭流
		out.close();
		socket.close();
		System.out.println("发送端发送完毕!");

	}
}
public class Receive {
	public static void main(String[] args) throws IOException {
		//1.实例化一个ServerSocket
		ServerSocket server = new ServerSocket(8888);
		//2.等待连接
		System.out.println("等待连接......");
		Socket socket = server.accept();
		System.out.println("有客户端连接成功!");
		//3.获取输入流
		InputStream in = socket.getInputStream();
		byte[] byteArray = new byte[1024];
		int len = in.read(byteArray);
		String str = new String(byteArray,0,len);
		System.out.println("接收到信息:" + str);
		//4.释放资源
		in.close();
		server.close();	
	}
}

 TCP练习_客户端键盘录入服务器写到文本文件:

客户端代码:

  1.实例化一个Socket;

  2.获取一个输出流;

  3.实例化一个Scanner接收控制台数据;

  4.循环,接收控制台数据,每接收一条,就发送一条直到接收到886为止;

  5.释放资源

public class Client {
	public static void main(String[] args) throws IOException {
		Socket socket = new Socket("192.168.30.241", 9999);
		OutputStream out = socket.getOutputStream();
		Scanner sc = new Scanner(System.in);

		while (true) {
			System.out.println("请输入信息:");
			String str = sc.next();
			out.write(str.getBytes());
			if (str.equals("886")) {
				break;
			}
		}
		System.out.println("客户端结束!");
		out.close();
		socket.close();

	}
}
public class Server {
	public static void main(String[] args) throws IOException {
		ServerSocket server = new ServerSocket(9999);
		Socket socket = server.accept();
		// 网络输入流
		InputStream netIn = socket.getInputStream();
		// 文件输出流
		FileOutputStream fileOut = new FileOutputStream("demo08.txt");
		// 读取网络数据
		byte[] byteArray = new byte[1024];
		int len = 0;
		while (true) {
			len = netIn.read(byteArray);
			if (len == -1) {
				break;
			}
			fileOut.write(byteArray, 0, len);
			fileOut.write("\r\n".getBytes());

			String str = new String(byteArray, 0, len);
			if (str.equals("886")) {
				break;
			}
		}
		System.out.println("服务器端结束!");
		fileOut.close();
		netIn.close();
		socket.close();
		server.close();
	}
}

 TCP练习_TCP协议上传文本文件:

 客户端:
 * 
 * 1.实例化一个Socket;
 * 2.获取网络输出流;
 * 3.实例化一个文件输入流(字节流);
 * 4.循环读取文件内容,一次读取一个字节数组;
 * 	  一次发送一个字节数组;
 * 5.释放资源;
 */
public class Client {
	public static void main(String[] args) throws IOException {
		Socket socket = new Socket("192.168.30.241", 8888);
		OutputStream netOut = socket.getOutputStream();
		FileInputStream fileIn = new FileInputStream("demo10.txt");
		byte[] byteArray = new byte[1024];
		int len = 0;
		while ((len = fileIn.read(byteArray)) != -1) {
			netOut.write(byteArray, 0, len);
		}
		fileIn.close();
		netOut.close();
		socket.close();
		System.out.println("客户端上传完毕!");

	}
}
服务器端代码:
 * 
 * 1.实例化一个ServerSocket;
 * 2.获取一个网络输入流;
 * 3.实例化一个文件输出流;
 * 4.循环读取,一次读取一个字节数组;
 * 		一次写入一个字节数组;
 * 5.释放资源;
 */
public class Server {
	public static void main(String[] args) throws IOException {
		ServerSocket server = new ServerSocket(8888);
		Socket socket = server.accept();
		// 网络输入流
		InputStream netIn = socket.getInputStream();
		// 文件输出流
		FileOutputStream fileOut = new FileOutputStream("demo10_upload.txt");

		// 一次读取一个字节数组
		byte[] byteArray = new byte[1024];
		int len = 0;
		while ((len = netIn.read(byteArray)) != -1) {
			fileOut.write(byteArray, 0, len);
		}
		// 释放资源
		fileOut.close();
		netIn.close();
		socket.close();
		server.close();
		System.out.println("服务器端完毕!");
	}
}

 TCP练习_关于多个客户端上传到一个服务器:

public class Client {
	public static void main(String[] args) {
		//模拟10个客户端同时连接服务器
		for(int i = 1 ; i <= 10 ;i ++){
			new ClientThread(i).start();
		}
	}
}
public class ClientThread extends Thread {
	private int index;

	public ClientThread(int index) {
		this.index = index;
	}

	@Override
	public void run() {
		// 连接服务器
		try {
			Socket socket = new Socket("192.168.30.241", 8888);
			// 网络输出流
			OutputStream netOut = socket.getOutputStream();
			// 文件输入流
			FileInputStream fileIn = new FileInputStream("C:\\ccc\\" + index
					+ ".png");
			// 一次读取一个字节数组
			byte[] byteArray = new byte[1024];
			int len = 0;
			while ((len = fileIn.read(byteArray)) != -1) {
				netOut.write(byteArray, 0, len);
			}
			// 释放资源
			fileIn.close();
			netOut.close();
			socket.close();
			System.out.println("文件:" + index + ".png 上传完毕!");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
public class ServerThread extends Thread {
	public int index;
	private Socket socket;

	// 此索引,跟客户端的索引不是一一对应的;
	public ServerThread(int index, Socket socket) {
		this.index = index;
		this.socket = socket;

	}

	@Override
	public void run() {
		// 获取网络输入流
		try {
			InputStream netIn = socket.getInputStream();
			FileOutputStream fileOut = new FileOutputStream(index + ".png");
			byte[] byteArray = new byte[1024];
			int len = 0;
			while ((len = netIn.read(byteArray)) != -1) {
				fileOut.write(byteArray, 0, len);
			}
			fileOut.close();
			netIn.close();

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 文件的输出流
	}
}
public class Server {
	public static void main(String[] args) throws IOException {
		ServerSocket server = new ServerSocket(8888);
		int index = 1;
		while (true) {
			Socket socket = server.accept();
			// 启动线程;
			new ServerThread(index++, socket).start();
		}
	}
}

以上就介绍了黑马程序员-网络编程学习笔记,包括了循环,Exception,对象,索引,静态方法方面的内容,希望对Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_184909_3.html

相关图片

相关文章