`

UDP与TCP

 
阅读更多
package www.itcast.cn;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class FileClient {
	public static void main(String[] args) throws IOException {
		//创建输入流,关联文件
		FileInputStream in=new FileInputStream("c:\\a.txt");
		//创建缓冲区
		byte[] datas=new byte[1024];
		//定义变量,记录字节数
		in.read(datas);
		
		//建立客户端
		Socket socket=new Socket("192.168.15.47",5001);
		//调用socket的方法
		InputStream in1 = socket.getInputStream();
		OutputStream out = socket.getOutputStream();
		
		out.write(datas);
		
		out.close();
		in.close();
	}
}

package www.itcast.cn;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class FileServer {
	public static void main(String[] args) throws IOException {
		//创建服务器
		ServerSocket server=new ServerSocket(5001);
		//监听
		Socket socket = server.accept();
		
		InputStream in = socket.getInputStream();
		OutputStream out = socket.getOutputStream();
		
		//read接受文件
		byte[] buffer=new byte[1024];
		in.read(buffer);
		
		//写到服务器上
		FileOutputStream ou = new FileOutputStream("D:\\tang.txt");
		
		ou.write(buffer);
		ou.close();
		in.close();
	}
}

 

package www.itcast.cn;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class Client {
	public static void main(String[] args) throws UnknownHostException, IOException {
		System.out.println("客户端启动");
		//创建客户端对象
		Socket socket=new Socket("192.168.15.47",5001);
		//客户端想服务器发送消息
		//String mess="helllo world";
		
		Scanner scanner=null;
		while (true) {
			//创建输入流和输出流
			InputStream in = socket.getInputStream();
			OutputStream out=socket.getOutputStream();
			
			String mess=scanner.nextLine();
			//使用客户端的套接词的输出流
			out.write(mess.getBytes());
			if ("bye".equals(mess)) {
				break;
			}
		}
		//关闭资源
		socket.close();
	}
}
package www.itcast.cn;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class ReceiveDemo {
	public static void main(String[] args) throws IOException {
		System.out.println("接受启动");
		//创建数据报包以接受发送的数据报包
		DatagramPacket packet=new DatagramPacket(new byte[1024], 1024);
		//创建套接词
		DatagramSocket socket=new DatagramSocket(5000);
		//接受报包
		socket.receive(packet);
		
		//获取字节数组
		byte[] datas=packet.getData();
		String mess=new String(datas);
		//获取IP
		String IP=packet.getAddress().getHostAddress();
		//获取长度
		int length=packet.getLength();
		//获取端口
		int port=packet.getPort();
		
		System.out.println(IP+length+port);
		
		System.out.println(mess);
		
		socket.close();
	}
}

 

package www.itcast.cn;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.io.IOException;
class ReceiveTang 
{
	public static void main(String[] args) throws IOException
	{
		System.out.println("接收端启动");
		//创建数据报包,存储接收发送端发送的数据
		DatagramPacket packet=new DatagramPacket(new byte[1024],1024);
		//创建数据报包套接词,准备接收数据报包
		DatagramSocket socket=new DatagramSocket(2000);
		//套接词的方法receive接收数据报包
		//z注意:没有返回值,直接接收存储到接收发送的数据报包中
		socket.receive(packet);
		
		//从数据报包中获取数据

		//返回数据缓冲区
		byte[] datas=packet.getData();
		//返回IP地址=>IP的字符串表现形式
		String ip=packet.getAddress().getHostAddress();
		//返回数据长度
		int length=packet.getLength();
		//返回端口号
		int port=packet.getPort();
	
		System.out.print("IP:"+ip+" length:"+length+" port:"+port);
		String mess = new String(datas, 0, length);
		System.out.print("发送端:"+ip+"发送了:");
		System.out.println(mess);
		
 	}
}
package www.itcast.cn;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

class SendTang1 
{
	public static void main(String[] args) throws Exception
	{
		System.out.println("发送端启动");
		//准备数据
		String mess="hello world";
		byte[] datas=mess.getBytes();
		//数据长度
		int length = datas.length;
		//IP地址
		InetAddress ip=InetAddress.getByName("PC-20150131PIUS");
		//端口号
		int port=2000;

		//封装数据报包
		DatagramPacket packet=new DatagramPacket(datas,length,ip,port);
		//创建发送报包套接词,准备发送数据报包
		DatagramSocket socket=new DatagramSocket();
		//发送数据报报
		socket.send(packet);
		//关闭数据报包套接词
		socket.close();
	}
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics